Unsafe JavaScript attempt to access frame with URL file:///D:/xx/webpage.html from frame with URL http://www.asp.net/. Domains, protocols and ports must match.
我正在开发一个使用iFrame加载外部网站的jQuery移动应用程序 我的脚本代码是:
$(document).ready(function () {
$('#divID').prepend('<img src="http://xxx/images/ICPosternew1002.png" usemap="#map" id="image" style="margin-top:43px;"/>')
$('#map').append('<area coords="30,0,60,30" id="1" alt="Blah" title="asp" />')
$("#1").bind("click", function (e) {
e.preventDefault();
$('#Web1').append('<form id="form1" runat="server" rel="external"></form>')
$('#form1').append('<iframe id="iframe1" src="http://asp.net" frameborder="0" rel="external"></iframe>')
});
});
我的应用程序中有两个虚拟页面。点击主页面中的图像地图,可以使用iFrame和相应的网站加载第二页。
<div data-role="page" id="Web" class="pagebody">
<div data-role="header" data-position="inline" data-theme="a">
<!--header-->
</div>
<div data-role="content" id="Web1">
<form id="form1" runat="server">
<iframe id="iframe1" >
</iframe>
</form>
</div>
<div data-role="footer" class="footer">
<!--footer-->
</div>
</div>
我的代码有问题吗?
答案 0 :(得分:0)
这听起来像是同源政策的问题。请参阅此社区Wiki以获取解决方案:Ways to circumvent the same-origin policy
答案 1 :(得分:0)
我想你可以这样解决:
$(document).ready(function () {
var html = "";
html += "<div data-role=page id=win2 class=pagebody>";
html += "<div data-role='header'>";
html += "</div>";
html += "<div data-role=content>";
html += "</div>";
html += "<div class=push>";
html += "</div>";
html += "<div data-role=footer class=footer>";
html += "</div>"
html += "</div>";
$(html).insertAfter ("#index");
for(var i=0;i<data.length;i++)
{
$("#area"+data[i].NodeID+"").bind ("click", function (event)
{
var title = $(this).attr("src");
alert(title);
$.mobile.changePage ($("#win2"));
$("#win2 div:jqmData(role=content)").empty().append ('<form id="form1" runat="server" rel="external"></form>')
$('#form1').empty().append('<iframe id="iframe1" src="'+title+'" frameborder="0" rel="external"></iframe>')
});
}
});