我正在尝试在iFrame标记之后插入脚本标记。在这里,我想找到一个带有数据破折号属性的脚本标记,并在添加脚本标记之后用iframe替换该元素。
这是我的代码,但不起作用。
(function ($) {
var target = $("script[id=token]");
var iframe = $('<iframe>', {
src: "//" + getHostName(target.attr("src")) ,
name: "MyFrame",
class: 'Myforms ' + target.attr("data-unique"),
frameborder: "0",
scrolling: "no"
}).insertAfter($('<span>'));
target.replaceWith(iframe);
function getHostName(url) {
var l = document.createElement("a");
l.href = url;
return l.host;
}
})(jQuery);
答案 0 :(得分:-1)
请在下面找到一个工作示例,根据bbc.com上不存在的脚本的URL获取BBC的主页。
您不需要insertAfter($('<span>'))
,但也不应该导致错误。
function getHostName(url) {
var l = document.createElement("a");
l.href = url;
return l.host;
}
(function ($) {
var target = $("script[id=token]");
var iframe = $('<iframe>', {
src: "//" + getHostName(target.attr("src")),
name: "MyFrame",
class: 'Myforms ' + target.attr("data-unique"),
frameborder: "0",
scrolling: "no"
});
target.replaceWith(iframe);
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script id="token" src="http://www.bbc.com/nonexistingscript.js" data-unique="gnjrls"></script>
要进行故障排除,请检查您的目标是否允许框架,例如通过测试iframe在手动添加到HTML时加载。另请注意,如果您在没有网络服务器的情况下进行本地测试,则无协议的iframe网址"//" + getHostName(target.attr("src"))
不起作用,即地址栏中显示的网址以file:///
开头。