将相对路径转换为绝对路径
我需要得到一个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...