2012-04-19 347 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