【问题标题】:Alert when iframe url changediframe url 更改时发出警报
【发布时间】:2012-03-11 11:00:02
【问题描述】:

此脚本每 2 秒运行一次,并检测 iframe 的 url 是否更改。但我无法让它工作。如果 iframe 的 url 发生更改,我想提醒。例如,如果有人单击链接并转到 iframe 内容的另一个页面。

var prevSrc = "http://www.bodrumlife.com";
function check() {
var curSrc = $('#iframe').attr('src');
  if (curSrc != prevSrc) {
   alert("hobaa");
   prevSrc = curSrc;
   }
}

window.setInterval(check, 2000); // 2 seconds


<iframe id="iframe" name="iframe" src="http://www.bodrumlife.com"></iframe>

【问题讨论】:

标签: javascript jquery url iframe


【解决方案1】:

如果你更喜欢使用 JQuery 下面是下面的语法,而不是使用半 jquery 和标准 javascript。

$(function(){
    $('#iframeId').load(function() {
        alert("the iframe has changed.");
    });
});

虽然我不确定 onload 功能是否在 Sarafi 中有效。 Firfox、IE 和 Chrome 都支持它。

编辑:

扩展示例

    <script type="text/javascript">
        $(function () {
            var intialFrameSrc = "http://www.twiij.com";
            $("#iframeContentPanel").load(function () {
                if (intialFrameSrc != $("#iframeContentPanel").attr('src')) {
                    alert("the iframe has changed.");
                }
            });

            $("#btnChangeUrl").click(function () {
                $("#iframeContentPanel").attr("src", "http://m.smh.com.au/");
            });
        });

    </script>
        <iframe id="iframeContentPanel" name="iframeContentPanel" src="http://www.twiij.com" width="500"  frameborder="0" height="500" scrolling="no"></iframe>
<input type="button" id="btnChangeUrl" value="Change Url"/>

【讨论】:

  • 谢谢,它有效。但它也会在 iframe 的第一次加载时触发。如何防止它在第一次加载时触发?
  • 在第一次加载设置为 false 时创建一个 bool var,如果 loadedCheck 为 false,则设置为 true 并在 loadedCheck 时包装您的警报。或者,如果您有默认 URL,则检查 url 是否为默认 URL,然后什么也不做。
  • 谢谢。另外,是否可以在加载 iframe 时(而不是加载时)进行事件?
  • 这个脚本有一个问题。如果您在 Firefox 或 Safari 中导航到无效 URL,则不会触发加载事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多