如何在每次打开对话框时重新加载iframe包含的jquery对话框的src?

时间:2014-01-03 04:37:46

标签: javascript jquery iframe jquery-dialog

我有一个像这样的对话

<div id="dialog">
  <iframe id="myIframe" src=""></iframe>
</div>
<button id="opener1">Open Dialog</button>
<button id="opener2">Open Dialog</button>

我的脚本如下

$(function () {
  $("#dialog").dialog({
    autoOpen: false,
    show: "fade",
    hide: "fade",
    modal: true,
    height: 'auto',
    width: 'auto',
    resizable: true,
    title: 'Vessels'
  });

  $("#opener1").click(function () {
    $('#myIframe').src = 'http://www.w3schools.com';
    $("#dialog").dialog("open");
    return false;
  });

  $("#opener2").click(function () {
    $('#myIframe').src = 'http://www.google.com';
    $("#dialog").dialog("open");
    return false;
  });
});

我想在显示对话框之前动态设置iframe的url。 我尝试了上面的代码,但没有工作

3 个答案:

答案 0 :(得分:2)

你可以试试这个

$(function () {
    $("#dialog").dialog({
        autoOpen: false,
        show: "fade",
        hide: "fade",
        modal: true,
        height: 'auto',
        width: 'auto',
        resizable: true,
        title: 'Vessels',
        close: function( event, ui ) {
           $('#myIframe').attr('src', '');
         }
    });

    $("#opener1").click(function () {
        $('#myIframe').attr('src', 'http://www.w3schools.com');
        $("#dialog").dialog("open");
        return false;
    });

    $("#opener2").click(function () {
        $('#myIframe').attr('src', 'http://www.example.com/');
        $("#dialog").dialog("open");
        return false;
    });
});

关闭对话框时,只需将iframe src设为empty

演示:http://jsfiddle.net/94KUB/3/

答案 1 :(得分:0)

您无法直接设置来源。您必须更改iframe的src属性,如下所示:

$('#myIframe').attr('src','http://www.w3schools.com');

答案 2 :(得分:0)

试试这个,

$('#myIframe')[0].src = 'http://www.w3schools.com';

或使用attr()之类的,

$('#myIframe').attr('src','http://www.google.com');

Demo