我正在使用jquery并尝试查找<html>
中嵌入的<object>
标记。我试图使用find方法,但无法找到一个。有人可以指导。
代码:
if (dialogObject.find('head')) {
var findelemnt = $('#dialogObject').find('html');
var testthis = findelemnt.attr("class");
alert(testthis);
}
else { alert("not found") }
dialoObject是<div>
。附上页面的截屏。
答案 0 :(得分:1)
我认为由于same origin policy,这可能会失败。请参阅https://stackoverflow.com/a/14453363/560114。
尝试使用本地网址 - 我猜你可以使用此代码在那里工作:
$('#dialogObject')[0].contentDocument
答案 1 :(得分:0)
$(&#39;#dialogObject&#39;)。find(&#39; head&#39;) - 您已通过右侧选择器调用您的元素。
答案 2 :(得分:0)
如果您尝试嵌入嵌套浏览上下文,则可以添加“name”属性:
<object id="dialogObject" data="http://domain/path" name="myWindow"></object>
并使用<html>
或myWindow.document.documentElement
访问嵌套的window["myWindow"].document.documentElement
元素。
编辑1:虽然您可以通过其“id”属性访问<object>
元素,例如window.dialogObject
,window["dialogObject"]
或当然document.getElementById("dialogObject")
,您可以通过其“名称”属性访问嵌套 window
对象,例如myWindow
或window["myWindow"]
。
为此,$(myWindow.document.documentElement)
相当于使用$(myWindow.document).find('html')
。
编辑2:如果您希望根据原始代码使用“id”属性,则可以将Matt Browne的answer与上述内容结合使用,以实现以下目标:
$($('#dialogObject')[0].contentDocument).find('html')
虽然我建议如下:
$(document.getElementById("dialogObject").contentDocument.documentElement)
除此之外,不要忘记在文档就绪事件处理程序中执行代码,以确保在您尝试访问任何相关元素时DOM已完全加载。