我有一个网页托管在https上,其中包含iframe内容,其中包含http链接。框架内容位于另一个域,但为https,但我希望能够将http链接打开到新选项卡中。到目前为止,我还无法通过jquery实现这一点。
示例。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function() {
$("a[href^='http://']:not([href*='https://'])").each(function() {
$(this).click(function(event) {
event.preventDefault();
event.stopPropagation();
window.open(this.href, '_blank');
}).addClass('externalLink');
});
});
</script>
</head>
<body>
<div class="banner">
<a href="http://example.com">WE ARE STILL HERE</a>
<iframe name="home" scrolling="auto" height="100%" width="100%" noresize="true" src="https://www.example.com">
</iframe>
</div>
</body>
</html>
您可以尝试使用各种混合内容页面。您会注意到,占位符链接“我们仍然在这里”完美地打开了一个新窗口,而如果不选择允许不安全的内容,则不会加载iframe中的任何内容。
任何帮助将不胜感激。
答案 0 :(得分:0)
如果iframe网址和首页url在同一域中,那么可以通过此代码来访问放置在iframe中的元素
var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
但实际上不是不可能的