AngularJs实现聊天列表实时刷新功能,页面进行操作的方法教程

JavaScript兑现选中文字提示和讯新浪分享作用,javascript今日头条

正文实例为大家享受了JS天涯论坛微博分享成效,供我们仿照效法,具体内容如下

<!DOCTYPE html>
<html xmlns:wb="http://open.weibo.com/wb">
<head>
  <meta charset="utf-8">
  <title>javaScript实现选中文字提示新浪微博分享的效果</title>
  <style type="text/css">
   #div1{ position: absolute; left: 0;top: 0; display: none;}
  </style>
</head>
<body>
  <p id="txt">
    一直对json的使用方法迷迷糊糊,知道一些简单的使用方法,有时用起来非常easy把自己搞混。今天专门查了一下相关的JSON的资料及使用方法,总结记录下来。JSON并非一种编程语言。能够理解成它是一种数据格式。尽管具有同样的语法形式。可是JSON并不属于JavaScript。并且。并非全部的JavaScript才使用JSON,非常多编程语言都有针对JSON的解析器和序列化器。JSON的语法能够表示三种类型值:
  </p>
  <div id="div1"><img src="https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=163431486,1136892253&fm=58"></div>
  <script type="text/javascript">
    window.onload=function(){
      function selectText(){
        if(document.selection){
        //兼容ie
          return document.selection.createRange().text;
        } else{
        //标准的获取方法
          return window.getSelection().toString();
        }
      }
      var oTxt = document.getElementById('txt');
      var oDiv = document.getElementById('div1');

      oTxt.onmouseup = function(ev){
        var ev =ev||window.event;
        var top = ev.clientY;
        var left = ev.clientX;
        if(selectText().length>10){
          console.log(selectText())
          setTimeout(function(){
            oDiv.style.display = 'block';
            oDiv.style.left =left+'px';
            oDiv.style.top = top +'px';
          },1000)
        } else{
          oDiv.style.display = 'none';
        }
      };
      oTxt.onclick =function(ev){
        var ev =ev||window.event;
        ev.cancelBubble = true;
      }
      document.onclick = function(){
        oDiv.style.display = 'none';
      };
      //点击分享的实现
      oDiv.onclick = function(){
        window.location.href='http://service.weibo.com/share/share.php?url=http%3A%2F%2Flocalhost%3A63342%2Fjs2%2Fpicscroll.html&type=icon&language=zh_cn&searchPic=true&style=simple'+selectText()+window.location.href;
      }
    }
  </script>

</body>
</html>

以上正是本文的全体内容,希望对咱们的学习抱有协理,也期望大家多多帮助帮客之家。

本文实例为我们享受了JS博客园天涯论坛分享成效,供大家参考,具体内容如下
!DOCTY…

AngularJs达成聊天列表实时刷新作用,angularjs实时

今天在做app的闲谈列表时,遭逢了三个主题素材,消息监听器监听到了一个新的音讯,可是即使此时已经处于音讯列表的页面那么音信列表并不会立刻更新。

自己的主张是在service层中的监听器方法里,当监听到了一个新的新闻,那么就在根效能域中发出贰个广播,告诉controller层必要去获取最新的音信列表了。

service层中发出广播:

图片 1

controller层中接听广播:

图片 2

rootScope是所有scope的父级

它的播放(broadcast)和监听(on) 能够在无交集的controller间使用

scope 的 broadcast 和 on
是用于成效域有交集(老爹和儿子关系)controller间事件传递 有别于rootScope

如上所述是小编给咱们介绍的AngularJs达成聊天列表实时刷新功效,希望对大家全部帮忙,假使我们有别的疑问请给本人留言,我会及时回复大家的。在此也特别谢谢我们对帮客之家网址的支撑!

今天在做app的闲谈列表时,境遇了一个难点,消息监听器监听到了三个新的信息,不过若是…

使用JS对iframe父亲和儿子(内外)页面举行操作的艺术教程,jsiframe

正文重要给大家介绍了有关采纳JS对iframe父亲和儿子(内外)页面进行操作的点子,分享出去供我们参谋学习,下边来一齐拜望详细的介绍:

一、获取iframe里的原委

在开班从前,首先大家来探视哪些赢得iframe里的内容,获取iframe中剧情注重的四个API就是contentWindow,和contentDocument iframe.contentWindow,
获取iframe的window对象 iframe.contentDocument,
获取iframe的document对象
那五个API只是DOM节点提供的秘技(即getELement类别对象)

 var iframe = document.getElementById("iframe1");
 var iwindow = iframe.contentWindow;
 var idoc = iwindow.document;
  console.log("window",iwindow);//获取iframe的window对象
  console.log("document",idoc); //获取iframe的document
  console.log("html",idoc.documentElement);//获取iframe的html
  console.log("head",idoc.head); //获取head
  console.log("body",idoc.body); //获取body

骨子里情况如:

图片 3

其余更简约的方式是,结合Name属性,通过window提供的frames获取.

<iframe src ="/index.html" id="ifr1" name="ifr1" scrolling="yes">
 <p>Your browser does not support iframes.</p>
</iframe>
<script type="text/javascript">
 console.log(window.frames['ifr1'].window);
console.dir(document.getElementById("ifr1").contentWindow);
</script>

其实window.frames[‘ifr1']归来的正是window对象,即

window.frames['ifr1']===window

此处就看您想用哪一类方法获得window对象,两个都行,然则作者更侧向于第三种选用frames[xxx].因为,字母少啊喂~
然后,你就可以操控iframe里面的DOM内容。

二、在iframe中猎取父级内容

同理,在同域下,父页面能够获取子iframe的内容,那么子iframe一样也能操作父页面内容。在iframe中,可以透过在window上挂载的多少个API举行获取.

  • window.parent
    获取上一流的window对象,若是依然iframe则是该iframe的window对象
  • window.top 获取最一流容器的window对象,即,便是你张开页面包车型客车文档
  • window.self 再次来到本人window的引用。能够知道
    window===window.self(脑残)

如图:

图片 4

取得明白后,大家就足以开展有关操作了。
在同域的iframe中,大家能够美妙的行使iframe的黑科学技术来兑现部分trick.

iframe的轮询

话说在相当久比较久从前,大家贯彻异步发送诉求是行使iframe完结的~! 怎么大概!!!
真的史料为证(自行google),
那时候为了不跳转页面,提交表单时是使用iframe提交的。未来,前端发展尼玛真快,websocket,SSE,ajax等,逆天skill的出现,颠覆了iframe,
未来大概只好活在IE8,9的浏览器内了。
不过,婴孩认为那样就能够绝不驾驭iframe了,而具体便是这么冷酷,大家脚下还要求包容IE8+。所以,iframe
完结长轮询和长连接的trick 大家依旧需求涉猎滴。

iframe长轮询

假若写过ajax的童鞋,应该了然,长轮询便是在ajax的readyState =
4的时,再一次实行原函数就能够。
这里运用iframe也是千篇一律,异步成立iframe,然后reload, 和后台协商好,
看后台三哥们将回来的新闻放在,然后拿走里面消息就可以. 这里是一向放在body里.

var iframeCon = docuemnt.querySelector('#container'),
 text; //传递的信息
 var iframe = document.createElement('iframe'),
 iframe.id = "frame",
 iframe.style = "display:none;",
 iframe.name="polling",
 iframe.src="target.html";
 iframeCon.appendChild(iframe);
 iframe.onload= function(){
 var iloc = iframe.contentWindow.location,
 idoc = iframe.contentDocument;
 setTimeout(function(){
 text = idoc.getElementsByTagName('body')[0].textContent;
 console.log(text);
 iloca.reload(); //刷新页面,再次获取信息,并且会触发onload函数
 },2000);
 }

那般就足以兑现ajax的长轮询的功用。
当然,这里只是利用reload实行获取,你也得以添加iframe和删除iframe的法子,实行发送消息,这个都是基于具体情况应用的。别的在iframe中还足以兑现异步加载js文件,然则,iframe和主页是分享连接池的,所以依旧很蛋疼的,现在大约都被XH路虎极光和hard
calllback取缔了,这里也只是多介绍了。

1.js在iframe子页面操作父页面成分代码:

window.parent.document.getElementByIdx_x("父页面元素id");

2.js在父页面获取iframe子页面成分代码如下:

window.frames["iframe_ID"].document.getElementByIdx_x("子页面元素id");
  1. jquery在iframe子页面得到父页面成分代码如下:

    $(“#objid”,parent.document)

  2. jquery在父页面获取iframe子页面包车型客车成分

    $(“#objid”,document.frames(‘iframename’).document)

5.在iframe中调用父页面中定义的艺术和变量:

window.parent.window.parentMethod();
window.parent.window.parentValue;

6.在父页面操作iframe子页面包车型地铁情势和变量

window.frames["iframe_ID"].window.childMethod();
window.frames["iframe_ID"].window.childValue;

一、同域下老爹和儿子页面包车型大巴通讯

父页面parent.html

<html>
<head>
 <script type="text/javascript">
  function say(){
   alert("parent.html");
  }
  function callChild(){
   myFrame.window.say();
   myFrame.window.document.getElementById("button").value="调用结束";
  }
 </script>
</head>
<body>
 <input id="button" type="button" value="调用child.html中的函数say()" onclick="callChild()"/>
 <iframe name="myFrame" src="http://caibaojian.com/child.html"></iframe>
</body>
</html>

子页面child.html

<html>
<head>
 <script type="text/javascript">
  function say(){
   alert("child.html");
  }
  function callParent(){
   parent.say();
   parent.window.document.getElementById("button").value="调用结束";
  }
 </script>
</head>
<body>
 <input id="button" type="button" value="调用parent.html中的say()函数" onclick="callParent()"/>
</body>
</html>

注意事项

要力保在iframe加载完毕后再举行操作,假设iframe还未加载成功就起来调用里面包车型客车艺术或变量,会产生错误。决断iframe是还是不是加载成功有两种艺术:

      1. iframe上用onload事件

      2. 用document.readyState=="complete"来判断

二、跨域父子页面通讯格局

要是iframe所链接的是外界页面,因为安全机制就不可能利用同域名下的通讯模式了。

1.父页面向子页面传递数据

实现的本事是利用location对象的hash值,通过它传递通信数据。在父页面设置iframe的src前面多加个data字符串,然后在子页面中通过某种方式能即时的获得到那儿的data就足以了,譬如:

1.1
在子页面中通过setInterval方法设置反应计时器,监听location.href的浮动就可以获得地点的data新闻

1.2. 然后子页面依照这几个data音讯举办相应的逻辑管理

2.子页面向父页面传递数据

实现手艺正是使用三个代理iframe,它放到到子页面中,况兼和父页面必需维持是同域,然后经过它充裕利用上面第一种通讯情势的贯彻原理就把手页面包车型地铁多少传递给代理iframe,然后由于代理的iframe和主页面是同域的,所以主页面就能够运用同域的主意获得到那一个数据。使用
window.top或者window.parent.parent获得浏览器最顶层window对象的引用。

总结

以上正是那篇作品的全体内容了,希望本文的剧情对我们的学习或然干活能带动一定的增加援助,如有疑问大家能够留言调换,多谢我们对帮客之家的援救。

本文首要给大家介绍了关于采用JS对iframe父亲和儿子(内外)页面举办操作的不二等秘书诀,分…

发表评论

电子邮件地址不会被公开。 必填项已用*标注