开发者

Change src of iframe from a popup window

In my web application, the user can open a popup window to select an edit an object. When the user presses OK on the popup, it's supposed to update the src of an iframe in the parent window (and of course reload the iframe) according to which object was selected.

My function (in the parent window) is:

function dismissEditPopup(win, newId) {
    newId = html_unescape(newId);
    var elem_iframe = document.getElementById("iframe_id");

    // (*) this line doesn't work
    elem_iframe.src = '/view_object/' + newId;

    elem_iframe.contentWindow.location.reload();

    win.close();
开发者_Go百科}

This function is called from a popup window, which contains a script:

<script type="text/javascript">
    opener.dismissEditPopup(window, "hash_of_new_object");
</script>

The problem is that the line (*) fails silently. In the inspector in both Firefox 3.6 and Google Chromium, I see that the src attribute of the iframe is being updated, but elem_iframe.contentWindow.location.href is unchanged. (If I add a line elem_iframe.contentWindow.location.href = elem_iframe.src;, the assignment is ignored.). There are no errors in the Javascript error console. Strangely, it does work as expected if I assign to elem_iframe.src from the Javascript console.

I am able to change the value of a hidden <input> field in the same way, using document.getElementById("hidden_id").value = newId;.

Everything is served from the same website.

(Similar to Changing iframe src with Javascript, but the answers to that question don't work, presumably because the code is called from a popup.)


Take this line out:

elem_iframe.contentWindow.location.reload();

It's reloading the iframe and the new src is not loaded.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜