所以问题很简单,但我无法找到解决方案。我正在创建一个投资组合插件,并尝试在iframe中打开项目以显示响应式布局,但问题是当我在iframe中点击这些网址时,一些网址没有在iframe中打开。这是JS fiddle
<a href="https://www.searchforenergy.com" target="myIframe">iframe2</a>
<iframe src="" name = "myIframe"></iframe>
我想用jquery查看是否可以在iframe中打开然后确定,否则链接将在新标签中打开。
答案 0 :(得分:0)
问题是由same origin policy引起的。您可以采取的措施是在响应中添加标题,以允许跨源资源共享。
在apache中,您可以通过在httpd.conf
或任何.htaccess
个文件中添加以下行来执行此操作
Header set Access-Control-Allow-Origin "*"
答案 1 :(得分:0)
此问题是由于跨源请求被阻止:同源策略禁止在https://www.searchforenergy.com/读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。
X-Frame-Options拒绝加载:https://www.searchforenergy.com/不允许跨源框架。
您可以使用jquery ajax错误来检查是否可以使用javascript访问网址
$.ajax({
url: "https://www.searchforenergy.com",
dataType:'html',
success: callback = function(data, textStatus, xhr)
{
console.log(data)
},
error: callback = function(data, textStatus, xhr)
{
console.log(data)
}
});
答案 2 :(得分:0)
阅读charlietfl评论后的新解决方案
HTML
<a id="btn" href="#">iframe2</a>
<iframe src="" id = "myIframe" onload="loadFrame(this)"></iframe>
的Javascript
function loadFrame(frame) {
if (!frame.contentDocument) {
// code to open in tab
}
}
$(document).ready(function(){
$('#btn').click(function(){
$('#myIframe').attr('src', 'https://www.searchforenergy.com')
});
});