如何获得iframe对象的原点



我需要得到一个iframe的起源。到目前为止,我们使用的代码创建了一个锚元素并读取它的起源,但是这个属性在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));

但是正如我所说的,origin属性在ie浏览器中是不支持的。

我需要支持ie10及以上版本

var x = document.getElementById("myiframe");
alert(new URL(x.src).origin);
<iframe id="myiframe" src="https://www.google.com/search?q=test"></iframe>

检查src是否相对url:如何测试url字符串是绝对的还是相对的?

使用JavaScript
将相对路径转换为绝对路径

创建一个元素来解析一个字符串是很脏的。

为什么不自己解析呢?

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

如果您还想支持相对url(例如:'/myurl')只需添加一些条件来获取当前窗口的URL:

location.href.match...

最新更新