chrome javascript node

来源:互联网  责任编辑:小易  时间:2017/5/26 22:59:52
本网有用户碰到这样的问题:chrome javascript node,具体问题如下:

chrome node

本网根据需求用户需求,为用户寻得以下其他网友提供的解决方法,方法仅供参考,具体如下:

=================1楼=====================

跳进iframe继续搜索


function searchWithinNode(node, te, len) {
        var pos, skip, spannode, middlebit, endbit, middleclone;
        skip = 0;
        if (node.nodeType == 3) {
            pos = node.data.indexOf(te);
            if (pos >= 0) {
                spannode = document.createElement("span");
                spannode.setAttribute("class", "labnol");
                spannode.style.backgroundColor = "yellow";
                middlebit = node.splitText(pos);
                endbit = middlebit.splitText(len);
                middleclone = middlebit.cloneNode(true);
                spannode.appendChild(middleclone);
                middlebit.parentNode.replaceChild(spannode, middlebit);
                skip = 1;
            }
        } else if (node.nodeType == 1 && node.childNodes && node.tagName.toUpperCase() != "SCRIPT" && node.tagName.toUpperCase() != "STYLE") {
            if(node.tagName.toUpperCase() == "IFRAME"){
node = node.contentWindow.document.body;
}
for (var child = 0; child < node.childNodes.length; ++child) {
child = child + searchWithinNode(node.childNodes[child], te, len);
}
        }
        return skip;
    }
    searchWithinNode(top.window.document.body, text, text.length);

=================2楼=====================

引用 1 楼 Free_Wind22 的回复:
跳进iframe继续搜索


function searchWithinNode(node, te, len) {
        var pos, skip, spannode, middlebit, endbit, middleclone;
        skip = 0;
        if (node.nodeType == 3) {
            pos = node.data.indexOf(te);
            if (pos >= 0) {
                spannode = document.createElement("span");
                spannode.setAttribute("class", "labnol");
                spannode.style.backgroundColor = "yellow";
                middlebit = node.splitText(pos);
                endbit = middlebit.splitText(len);
                middleclone = middlebit.cloneNode(true);
                spannode.appendChild(middleclone);
                middlebit.parentNode.replaceChild(spannode, middlebit);
                skip = 1;
            }
        } else if (node.nodeType == 1 && node.childNodes && node.tagName.toUpperCase() != "SCRIPT" && node.tagName.toUpperCase() != "STYLE") {
            if(node.tagName.toUpperCase() == "IFRAME"){
node = node.contentWindow.document.body;
}
for (var child = 0; child < node.childNodes.length; ++child) {
child = child + searchWithinNode(node.childNodes[child], te, len);
}
        }
        return skip;
    }
    searchWithinNode(top.window.document.body, text, text.length);


谢谢回复!
试过了,没有成功,而且我用开发者功能定位的网页层是:
1. 可以被检索到:大框架:div.siderbar           文字部分:div.inner 
2. 不可被检索到:大框架:iframe#website              文字部分:div#centerInner.centerInner.svBigBox
不知道能不能帮助解决这个问题?
非常感谢。

=================3楼=====================

你这段代码是什么时候运行,可能执行的时候iframe还没加载完

=================4楼=====================

引用 3 楼 Free_Wind22 的回复:
你这段代码是什么时候运行,可能执行的时候iframe还没加载完

全部加载完了,还是不可以,而且有些网页原先的搜索功能也失效了。点击搜索后没有反应。

=================5楼=====================

是不是跨域了,你HTML代码贴出来看看.

=================6楼=====================

引用 5 楼 Free_Wind22 的回复:
是不是跨域了,你HTML代码贴出来看看.



View page source 太多了,超出了编辑框限制,我放在dropbox里了
https://www.dropbox.com/s/vtn1dhlnt8f7op8/Html%20code.txt?dl=0

View frame source
https://www.dropbox.com/s/yzueio0571z6uzn/frame%20code.txt?dl=0

=================7楼=====================

链接无效了.

=================8楼=====================

引用 7 楼 Free_Wind22 的回复:
链接无效了.


可以了。还是原来的链接~

=================9楼=====================



你F12看下有没报什么错误.

=================10楼=====================

引用 9 楼 Free_Wind22 的回复:


你F12看下有没报什么错误.


是这个吗?不太懂什么意思,还需要麻烦你,谢谢~

VM438:1 Uncaught DOMException: Blocked a frame with origin "http://bb2sz3ek3z.search.serialssolutions.com.libproxy1.nus.edu.sg" from accessing a cross-origin frame.
    at searchWithinNode (<anonymous>:1:890)
    at searchWithinNode (<anonymous>:1:975)
    at searchWithinNode (<anonymous>:1:975)
    at <anonymous>:1:1038
    at <anonymous>:1:1089

=================11楼=====================

你这个是跨域了.
2个页面都在脚本最上面添加一行 document.domain = "nus.edu.sg";

=================12楼=====================

引用 11 楼 Free_Wind22 的回复:
你这个是跨域了.
2个页面都在脚本最上面添加一行 document.domain = "nus.edu.sg";


你是说这样吗:

=================13楼=====================

这样会报错:

VM479:1 Uncaught DOMException: Blocked a frame with origin "http://bb2sz3ek3z.search.serialssolutions.com.libproxy1.nus.edu.sg" from accessing a cross-origin frame.
    at searchWithinNode (<anonymous>:1:921)
    at searchWithinNode (<anonymous>:1:1006)
    at searchWithinNode (<anonymous>:1:1006)
    at <anonymous>:1:1069
    at <anonymous>:1:1120

=================14楼=====================

不是加在bookmarklet里,加在主html页面和iframe页面里

=================15楼=====================

引用 14 楼 Free_Wind22 的回复:
不是加在bookmarklet里,加在主html页面和iframe页面里


是这样?也不行。。。


Uncaught DOMException: Blocked a frame with origin "http://bb2sz3ek3z.search.serialssolutions.com.libproxy1.nus.edu.sg" from accessing a cross-origin frame.
    at searchWithinNode (<anonymous>:1:890)
    at searchWithinNode (<anonymous>:1:975)
    at searchWithinNode (<anonymous>:1:975)
    at <anonymous>:1:1038
    at <anonymous>:1:1089

=================16楼=====================



加在script里面


<script type="text/javascript">
document.domain = "nus.edu.sg";
</script>

=================17楼=====================

引用 16 楼 Free_Wind22 的回复:


加在script里面

<script type="text/javascript">
document.domain = "nus.edu.sg";
</script>


sorry啊,我是小白。。。


还是报错,
VM3279:1 Uncaught DOMException: Blocked a frame with origin "http://bb2sz3ek3z.search.serialssolutions.com.libproxy1.nus.edu.sg" from accessing a cross-origin frame.
    at searchWithinNode (<anonymous>:1:890)
    at searchWithinNode (<anonymous>:1:975)
    at searchWithinNode (<anonymous>:1:975)
    at <anonymous>:1:1038
    at <anonymous>:1:1089

=================18楼=====================

你的iframe页面也要添加

=================19楼=====================

引用 18 楼 Free_Wind22 的回复:
你的iframe页面也要添加


sorry,不知道在哪加。。。是这个吗?

是每次搜索都需要添加吗?还是咱们在定位问题?
要是每次都需要添加感觉得不偿失了。。。

=================20楼=====================

https://www.dropbox.com/s/yzueio0571z6uzn/frame%20code.txt?dl=0

这个页面

如果您还有更好的解决方法,请在最下面评论中留下您的解决方法


  • 本文相关:
  • 站长必读,如何真正写好一篇原创文章
  • 互联网之路细嗅蔷薇 资深站长分享掘金之道
  • 企业站的站长的工作重心究竟有哪些
  • 浅析:行业门户网站的一些盈利模式
  • 3000IP的企业网站每天订单不到30个的苦恼
  • 网站想内外兼修?先学习提高网站可用性的6大原则
  • 浅谈网页设计中的简约之美
  • 网页改版实战:日本设计师如何彻底优化旅游网站?
  • 网页改版实战!日本设计师如何彻底优化招聘网站?
  • 2015年值得关注的21个网页设计趋势
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2015 www.zgxue.com All Rights Reserved