动态设置 iframe src

IT技术 javascript jquery
2021-01-24 03:10:03

我有一个程序可以动态设置 iframe src 来加载页面。我需要为完全加载的页面挂钩一个事件处理程序。我该怎么做?谢谢!

6个回答
<script type="text/javascript">
function iframeDidLoad() {
    alert('Done');
}

function newSite() {
    var sites = ['http://getprismatic.com',
                 'http://gizmodo.com/',
                 'http://lifehacker.com/']

    document.getElementById('myIframe').src = sites[Math.floor(Math.random() * sites.length)];
}    
</script>
<input type="button" value="Change site" onClick="newSite()" />
<iframe id="myIframe" src="http://getprismatic.com/" onLoad="iframeDidLoad();"></iframe>

示例在http://jsfiddle.net/MALuP/

此答案中的链接现在已损坏。jsfiddle.net上重新上传它可能会很有用,然后发布一个链接。
2021-03-15 03:10:03
好主意。我只是改变了它。
2021-04-11 03:10:03

试试这个:

top.document.getElementById('AppFrame').setAttribute("src",fullPath);

试试这个...

function urlChange(url) {
    var site = url+'?toolbar=0&amp;navpanes=0&amp;scrollbar=0';
    document.getElementById('iFrameName').src = site;
}

<a href="javascript:void(0);" onClick="urlChange('www.mypdf.com/test.pdf')">TEST </a>

您还应该考虑到在某些 Opera 版本中 onload 会被多次触发并添加一些钩子:

// fixing Opera 9.26, 10.00
if (doc.readyState && doc.readyState != 'complete') {
    // Opera fires load event multiple times
    // Even when the DOM is not ready yet
    // this fix should not affect other browsers
    return;
}

// fixing Opera 9.64
if (doc.body && doc.body.innerHTML == "false") {
    // In Opera 9.64 event was fired second time
    // when body.innerHTML changed from false
    // to server response approx. after 1 sec
    return;
}

Ajax Upload 中借用的代码

此外,如果您使用的是 jQuery,则可以为 iframe 绑定加载事件处理程序 $('iframe').load(function (){ ...do smth... })
2021-03-27 03:10:03

试试这个代码。然后'formId' div 可以设置图像。

$('#formId').append('<iframe style="width: 100%;height: 500px" src="/document_path/name.jpg"' +
 'title="description"> </iframe> ');