我有一个页面最初只加载了 iframe 中的一个表单,如下所示:
<iframe id="oIframe" ...src='somePage>'
<form ... />
</iframe>
当您单击表单中的按钮时,会调用一些构建 url 的 javascript,然后我想执行以下操作:
frame.src = 'somePage?listId=1';
这在 IE 中有效,可以用新内容“重新加载”框架。 但是,在 Safari 中这不起作用。
我有可用的 jQuery,但我不想替换现有的 iframe,因为它附加了事件。我也无法修改 iframe 的 ID,因为它在整个应用程序中都被引用。
我见过一些类似的问题,但没有任何解决方案似乎能很好地解决我的确切问题。
任何人都可以提供的任何帮助都会很棒!
最佳答案
某些浏览器在直接从 javascript 层次结构调用 javascript 对象时不使用“src”,而其他浏览器使用“location”或“href”而不是“src”来更改 url。您应该尝试这两种方法来使用新的 url 更新您的 iframe。
要防止浏览器缓存,请向 url 添加伪随机字符串(如数字和时间戳)以防止缓存。例如,将“new Date().getTime()”添加到您的网址。
一些调用示例:
document.getElementById(iframeId).src = url;
或
window.frames[iframeName].location = url;
我推荐使用 document.getElementById 的第一个选项
您也可以使用 iframe 强制重新加载页面
document.getElementById(iframeId).reload(true);
关于javascript - 使用在 Safari 中不起作用的新 url 重新加载 iframe src/location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082827/