2012-04-19 570 views
6

我有一个iframe,需要捕获javascript变量中的src属性。这就是我的iframe看起来像从iframe中获取iframe src参数

<iframe id="iframe_module_46081" name="iframe_module_46081" src="//myurl.com/tabs/495/campaigns/0ed3ffa8-5050-4a18-a5e3-f348d12a1304?signature=6aa3005368f163539976460246f2f0839c0fb3e3&amp;id=678326"> 
<script>$(document).ready(function(){ 
    var name = window.name; 
    var src = ????; 
}) 
</script> 
</iframe> 

我能够通过window.name而不是src属性获取名称。任何想法?

+0

'top.document.getElementsByName(window.name)[0] .src'应该这样做 – 2012-04-19 15:48:35

+1

@GGG:这不适用于跨域。 – SLaks 2012-04-19 15:49:14

+0

@SLaks显然,除了'document.location'之外,什么都不会工作跨域= /但我认为由于某种原因他不适合他。 – 2012-04-19 15:50:15

回答

14

如果允许通过跨域检查,请尝试window.frameElement.src。否则,你是运气不好,留下location.href

+2

对于'frameElement' +1,我总是忘记存在 – 2012-04-19 15:57:41

+0

为什么'location.href'选择不幸运? – 2014-06-05 13:48:02

+2

因为iframe可能导航离开其原始位置 – 2014-06-05 15:08:14

0

试试这个请:

var src = $('#iframe_module_46081').attr('src'); 
+0

不;这只是为父母页面 – SLaks 2012-04-19 15:49:04

+0

比我没有解释他的问题。 – WolvDev 2012-04-19 15:51:16

+0

据我所知,他希望获得包含脚本运行窗口的iframe的'src'属性。 – 2012-04-19 15:52:25

3

您正在寻找document.location,就像任何其他文件。
每个帧都有自己的document

1
var src = top.document.getElementById("iframe_module_46081").src; 

如果你不想使用jquery选择器。

+0

谢谢所有,但我只是看到顶级iframe的域是不同的,所以我有跨域问题。 – Leon 2012-04-19 16:02:48