我能把这两个陈述结合起来吗?

时间:2011-06-16 16:13:59

标签: javascript

我正在尝试关注某个类中包含的所有链接 (f_foto)在DOM中,按照它们,然后检查结果。一世 可以使用XMLHttp.Request,但网站只返回HTTP文本,而不是XML (或至少.responseXML为空)。我不是刮掉绳子 我试图坚持检查由响应产生的DOM 文本,所以我打开一个新窗口与src中找到的链接 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"
}

2 个答案:

答案 0 :(得分:1)

假设您的新窗口符合Same-origin policy,您应该可以正常访问弹出窗口。基本上这意味着弹出窗口必须在同一个协议和主机上。

window.open的返回值是弹出窗口的window对象,因此要使代码正常工作,您需要在窗口{{1}上设置bgColor属性}。

document

答案 1 :(得分:0)

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

如果我的理解是正确的,你可以使用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>