正在搜索Iframe跨域

时间:2018-04-03 16:45:22

标签: javascript jquery iframe asp.net-mvc-5

我正在尝试更改iframe的一个网址(从MVC视图打开),其中包含另一个网站的域网址。当我尝试检索iframe对象时,我无法得到它。这是我尝试过的不同方式。最终,我只想在关闭时更改iframe的url。

更新:当我尝试使用传递的网址获取iframe时,我在iframe的调试器中收到“权限被拒绝”错误。

$(document).on('click', '.ui-dialog-titlebar-close', function () {
    var id = 'frame1';
    var iframe = document.frames ? document.frames[id] : document.getElementById(id);
    var x = document.getElementById(id);
    var z =  $(id);

    //doAlert();
});

 @using (Html.BeginActionLinkDialog(new DialogOptions()
                                            {
                                                OpenURL = @Model.TitleManagerURL,
                                                OpenDialogWithIFrame = true,
                                                Title = "Title Manager",
                                                Resizable = true,
                                                Height = "500",
                                                Width = "1200",   

                                                TargetDialogId = "xx"
                                            }, new { @id = "id1", @class = "edition_sub_link" }))

1 个答案:

答案 0 :(得分:0)

使用以下代码更改点击事件的iFrame网址。

您的iFrame:

<iframe id="iframeLanding" width="100%" scrolling="no" height="500px"  > </iframe>

这里的菜单仅用于例如(可能是任何东西)具有不同的域名网址:

<Div>
 <a href="https://www.google.com" class='menu' />
 <a href="https://www.stackoverflow.com" class='menu' />
</Div>

更新iFrame网址并调整其大小的代码。

 $(document).on('click', '.menu', function(event) {
   event.preventDefault();
   var url = $(this).attr("href");
   $('#iframeLanding').attr('src', url);
   setTimeout("iframeLoad()", 3000);
});

function iframeLoad(){
  resizeIFrame();
  $("#iframeLanding").load(reSizeIFrame);
}

function resizeIFrame() {
  try {
     var helpFrame = jQuery("#iframeLanding");
     var innerDoc = (helpFrame.get(0).contentDocument) ? helpFrame.get(0).contentDocument : helpFrame.get(0).contentWindow.document;
                     helpFrame.height(innerDoc.body.scrollHeight + 35);
      } catch (e) { var g = 1; }
 }