javascript - 使用在 Safari 中不起作用的新 url 重新加载 iframe src/location

标签 javascript iframe safari

我有一个页面最初只加载了 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/

相关文章:

css - 带有 iframe 的 Internet Explorer 中滚动条后的垂直空间,如何删除它?

ios - 跨域资源共享问题 : both OSX Safari and iOS Safari fail after preflight request

css - css 中的 bulletproof width hack 将涵盖所有内容,包括 Safari?

javascript - 如何从另一个模块调用函数

javascript setTimeout() 不等待,即使在作为匿名函数调用之后也是如此

javascript - platform.js 和 analytics.js 被 AdBlocker 拦截

javascript - 为什么这些 HTML5 图像的渲染(或不渲染!)取决于我刷新的速度?

javascript - 限制或阻止 iframe 导航

iframe - X-Frame-Options : does not permit framing 拒绝加载

PHP header 位置重定向在 iPhone 上不起作用