我在Chrome上使用iframe在kiosk模式上有一个网站,其中我打开了外部网站的数量。每个站点都有自己的target =“_ blank”链接。我无法控制这些外部链接。 我想只打开iframe中的所有外部链接,或者我需要为那些target = _blank链接发布一些消息。我无法在自助服务终端上打开新窗口。我到目前为止搜索过,发现它必须是一些服务器端编码。 Javascript在这方面没有任何帮助。
我的iframe代码:
navigateToExternal:function(href)
{
Engine.ui.openMenu();
Engine.ui.exit();
Engine.ui.mostRecentSection = "external";
$("a[data-navsection], a[href]").removeClass("disabled");
$("a[href='" + href + "']").addClass("disabled");
$(".footer").hide();
var sandbox = "sandbox=\"allow-forms allow-scripts allow-same-origin\"";
$("#content-container").append("<iframe id=\"contentFrame\" src=" + href + "\"" + sandbox + "></iframe>");
},
任何帮助或建议都会非常棒。
提前致谢!!
答案 0 :(得分:2)
您不能,父网页无法访问跨网站iframe,iframe无法访问跨网站的母网页。
这属于Same-Origin政策,无法在客户端进行解决。你可以在服务器上抓取这些网站并将它们作为你自己的网站展示,但是我不确定它会有多么有效。
答案 1 :(得分:0)
如果您在Chrome上运行,则可以尝试使用html5 iframe sandbox
属性。
<iframe sandbox="allow-scripts allow-forms" src="..."></iframe>
答案 2 :(得分:0)
我得到了一个解决这个问题的方法并且想分享。我们可以传递命令行参数For Mac,打开终端并运行:
$ open -a Google\ Chrome --args --disable-web-security
它将禁用Same-Origin-Policy,然后我们可以在跨站点iframe上进行必要的更改。