2015-09-04 63 views
1

我需要獲取iframe的來源。到目前爲止,我們使用的代碼創建了一個錨元素並讀取它的原點,但是此屬性在Internet Explorer中不可用。什麼是從iframe對象獲取原點的最優雅方式?如何獲取iframe對象的來源

這裏是舊代碼:

function getOrigin(href) { 
    var l = document.createElement("a"); 
    l.href = href; 
    return l.origin; 
}; 

var x = document.getElementById("my-iframe"); 
alert(getOrigin(x.src)); 

但正如我所說的起源屬性無法在Internet Explorer的支持。

我需要支持Internet Explorer 10及更高版本。

+0

我試圖做這樣的事情:'X。 contentWindow.location.origin'但由於SOP我無法訪問它,我不能添加CORS。 –

回答

1

那麼創建元素來解析一個字符串是非常骯髒的。

爲什麼不自己解析它?

'http://stackoverflow.com:8080/123?param=test'.match(/^.+\:\/\/[^\/]+\//)[0] 

如果你也想支持相對URL(例如「/ myurl」)只是增加了一些條件,採取當前窗口的URL來代替:

location.href.match... 
+1

刪除了斜槓'document.getElementById(「my-iframe」)。src.match(/^.+\:\/\/ [^ \ /] + /)[0]'正是我所需要的!謝謝! –