如何在iframe javascript代码中获取iframe属性
<div>
<iframe src="http://192.168.0.108:8092/"
name="otherDomain"
width="100%"
height="600px"
style="border: 0;"
data-auth-token="xyz"
data-auth-key="abc"
>
</div>
我正在尝试
console.log(window.frameElement.getAttribute('data-auth-token'))
如果iframe网址和浏览器用户相同,我可以获得iframe属性。如果网址不同,我会收到以下错误。
Uncaught SecurityError: Failed to read the 'frame' property from 'Window': Blocked a frame with origin "http://192.168.0.108:8092" from accessing a frame with origin "http://localhost:8092". Protocols, domains, and ports must match.
是否可以在JavaScript中获取跨域iframe属性。
答案 0 :(得分:2)
不幸的是,您无法使用引用其他域名的iframe。浏览器会自动阻止尝试从另一个域访问该帧的所有脚本。如果这样的事情成为可能,那么这将是一个巨大的安全漏洞。
在您的情况下,您可以将iframe
属性src
设置为localhost:8092
,这样您就可以拥有iframe
相同的位置(并且相同)域名),您将能够访问其数据。
答案 1 :(得分:0)
您不能从iframe内部访问属性,但可以访问查询字符串。
例如:
在父HTML中:<iframe src="/x?a=1"></iframe>
在iframe JavaScript中:window.location.search