我需要获取iframe的来源。到目前为止,我们使用的代码创建了一个anchor元素并读取了它的起源,但是此属性在Internet Explorer中不可用。从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不支持origin属性。
我需要支持Internet Explorer 10及更高版本。
好吧,创建只解析字符串的元素是很脏的。
为什么不自己解析呢?
'http://stackoverflow.com:8080/123?param=test'.match(/^.+\:\/\/[^\/]+\//)[0]
如果您还想支持相对URL(例如'/ myurl'),只需添加一些条件即可采用当前窗口的URL:
location.href.match...
删除结尾的斜杠后
document.getElementById("my-iframe").src.match(/^.+\:\/\/[^\/]+/)[0]
,正是我所需要的!谢谢!只是知道这仅适用于http(s)URI,而不适用于blob :、 blank:和data:URI