Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问对象标记的外部HTML页面内容_Javascript_Html_Dom - Fatal编程技术网

Javascript 访问对象标记的外部HTML页面内容

Javascript 访问对象标记的外部HTML页面内容,javascript,html,dom,Javascript,Html,Dom,我已经找到了这个问题的答案,但找不到方法 我想访问包含在对象标记中的div的内容 我的include.htm文件: <div id="includedDiv">This is the included page</div> 这是包含的页面 我所尝试的: <html> <head> <title>Get element from object included page</title> </head> <

我已经找到了这个问题的答案,但找不到方法

我想访问包含在对象标记中的div的内容

我的include.htm文件:

<div id="includedDiv">This is the included page</div>
这是包含的页面
我所尝试的:

<html>
<head>
<title>Get element from object included page</title>
</head>
<body>
<p>Test: This is the main page</p>
<object id="obj" data="include.htm"></object>
<script>
//alert(document.getElementById("includedDiv").firstChild.nodeValue);
//alert((document.getElementById("obj")).document.getElementById("includedDiv").firstChild.nodeValue);
alert(document.getElementById("obj")["includedDiv"]);
</script>
</body>
</html>

从包含对象的页面获取元素
测试:这是主页

//警报(document.getElementById(“includedDiv”).firstChild.nodeValue); //警报((document.getElementById(“obj”)).document.getElementById(“includedDiv”).firstChild.nodeValue); 警报(document.getElementById(“obj”)[“includedDiv”]);
没有任何警报会向我显示消息“这是包含的页面”,有没有办法从DOM获取此内容

编辑: 窗口[0]。document.getElementById(“includedDiv”).firstChild.nodeValue;这是通过DOM访问的好答案,对象标记只是创建了另一个窗口:)

document.getElementById('id').innerHTML
document.getElementById('id').outerHTML
,无论您要查找哪个

明白了!只用

window.parent.mainPageMethod(document.getElementById("includedDiv").firstChild.nodeValue);
在包含的页面中,您可以从主页获取Javascript函数中的div内容


感谢您尝试帮助Jay,我应该承认,当您谈到window.name属性时,它让我走上了正确的方向:)

更好的回答是:您可以通过DOM访问对象标记内容,它只是另一个窗口

window[0].document.getElementById("includedDiv").firstChild.nodeValue;

就是这样:D

我想获取包含在“object”标记中的HTML页面的内容,而不是简单div对象的内容。HTML对象标记:不幸的是,如果div在同一个页面上,那么您的解决方案可以工作,但在我的例子中,它不在同一个页面上,并且发出警报(document.getElementById(“obj”).innerHTML);打印一条空白消息如果你得到div'includedDiv'并使用outerHTML怎么办?如果这样不行,试试这个。。。当页面加载有函数时,将window.name属性修改为加载内容的“innerHTML”,然后调用回调函数。。。调用该函数时,您将在window.name…include.onload=function(){window.name=globalCallable(document.innerHTML.toString();}outerpage.globalCallable(x){return x;}可能的线索是,我想要访问的内容在外部页面上,有人说object标记立即关闭,因此,没有孩子发现可以使用jQuery加载方法或使用本机Javascript AJAX方法XMLHttpRequest加载外部HTML页面的内容。我不明白为什么我们会使事情复杂化,因为加载了div内容,我们可以在页面上看到消息,所以它应该在某个地方,可以通过DOM访问@baptx窗口[0]。document.getElementById(“includedDiv”).firstChild.nodeValue;:)请注意,查看
的能力可能受到同一原产地政策的约束。这不是重点。您可能会发现它不适用于
。。。数据=”http://somewhere.else.com“..
。正在工作,但这对我来说仍然是个谜:嘿,我正在尝试做同样的事情,但我得到了:TypeError:undefined不是一个对象(正在计算'window[0].document')。有什么想法吗?@Miguel很抱歉回复太晚,如果它说窗口[0]。文档未定义,那应该意味着您的网页上没有任何框架(iframe或object)。请注意,出于安全原因,框架应使用相同的域,否则会出现另一个错误: