2011-06-16 45 views
0

我试图遵循DOM中某个类 (f_foto)中包含的所有链接,请按照它们并检查结果。 I 可以使用XMLHttp.Request,但该站点只返回HTTP文本,而不是XML (或至少.responseXML为空)。我试图坚持检查由 文本产生的DOM,而不是刮掉字符串,所以我打开了一个新窗口,其中包含 f_foto类中的链接。窗口打开好,但之后我无法访问 新窗口。请注意,没有必要使用新窗口,但我不知道如何将文本文件转换为任何其他方式的DOM。我可以结合这两个陈述吗?

在下面的代码窗口中打开一个新的窗口,但在未来的声明中,这会改变背景颜色为 黑色,返回错误测试 理论“不能设置属性‘BGCOLOR’的 不确定的。”在这里,我用什么操纵 detailWindow并不重要 - 它总是未定义的。根据我所做的研究 ,这必须与这个脚本位于 父页面而不是在打开的页面中有关。那么我怎样才能控制 这个新打开的窗口?我想是有

document.getElementById("tab_content"). 

var detailWin; 
for (var i = 0; i<searchResult.length; ++i) 
{ 
     detailWin=window.open(profileLinks[i], "Detail Window", 
       "width=700, height=650, resizable=1, toolbar=0, location=0, 
status=0, menubar=0, directories=0, scrollbars=yes, top=0, left=0"); 
     detailWin.bgColor="black" 
} 

回答

0

也许我误解你的问题,但它听起来像你说你需要这个被转换了一堆由指定的URL将DOM可以操作都在一个地方任意的HTML页面;您实际上不需要向用户显示弹出窗口。

如果我的理解是正确的,你可以使用jQuery的加载函数。

如果你的网页上有一个随机div(可能是将它设置为display:none),你可以使用它将url的内容加载到该div中,然后你可以操纵你想要的任何东西在该div下的DOM中,就好像该内容总是在那里一样。

<div id='someRandomDiv'></div> 
<script type="text/javascript"> 
    loadIsDone = function() { 
     //do stuff with document.getElementById('someRandomDiv').childNodes; 
    }; 

    $('#someRandomDiv').load('http://www.url.com', loadIsDone); 
</script> 
+0

yes,我一直在想,但我不知道该怎么做,我明白你可以在一个加载的页面中创建一个div,并隐藏它,并把你想要的任何东西放在那里,但如何做到这一点的细节是一个大学习如何处理DOM元素的学习曲线,我认为你们大多数人都认为它们是首要的元素。(!! :))yucky双关语!你能推荐一些代码片段吗?这是一个Chrome扩展btw。是jQuery可用于Chrome扩展吗? – Jerome 2011-06-16 19:47:54

+0

jQuery是一个JavaScript库。您可以从jQuery.com下载并从您的站点托管它,只需添加指向谷歌版本的脚本标记STS。例如:或:至于将其挂接到Chrome扩展中,我不太确定 - 我认为这只是一个网页。 – DrShaffopolis 2011-06-16 20:19:49

1

假设你的新窗口中的结果与Same-origin policy规定,你应该能够访问弹出正常人一样。基本上这意味着弹出框必须位于相同的协议和主机上。

window.open返回值是弹出窗口的window对象,所以使你的代码工作,你需要设置窗口的documentbgColor财产。

document.getElementById("tab_content"). 

var detailWin; 
for (var i = 0; i<searchResult.length; ++i) 
{ 
     detailWin=window.open(profileLinks[i], "Detail Window", 
       "width=700, height=650, resizable=1, toolbar=0, location=0, 
status=0, menubar=0, directories=0, scrollbars=yes, top=0, left=0"); 
     detailWin.document.bgColor="black" 
} 
+0

这没有帮助。现在它返回一个错误 - “未捕获的类型错误”无法读取未定义的属性“文档” – Jerome 2011-06-16 17:58:53

+0

任何引用detailWin的东西都会返回undefined,但是每次重复循环时窗口都会打开并显示所需的html – Jerome 2011-06-16 18:07:22