php - 做一个iframe智能化?

标签 php javascript jquery html iframe

以下代码的想法是它有一个 iframe(这是必需的,因为应用程序具有此 html 结构)。当父窗口主体元素具有“IntelligenceEnabled”类时,iframe 将对所有“a”标记名激活警报操作(“我很聪明!”);当类不存在时,iframe 上的链接将自动禁用。

问题是:代码运行良好,但有时当用户在切换(禁用/启用)后单击 iframe 中的“showMessage”链接时,这些链接会重定向到 url(facebook、yahoo、google...)和没有显示消息。或者相反的效果,消息会一直显示。

我做错了什么? (两者在同一域 iframe 和父窗口上)

<html>
<script type="tex/javascript" src="/js/jquery-1.9.1.min.js"></script>
<script>
$(document).ready( function() {

    $("body.IntelligenceEnabled #IamIntelligent").on( 'load', function() {
        $("body.IntelligenceEnabled #IamIntelligent").contents().delegate( '.showMessage', 'load', function() {
            alert("I'am intelligent");
            return false;
        });
     });

     $('#enableIntelligence').click( function() {
        $('body').addClass('IntelligenceEnabled');
        return false;
     });

     $('#disableIntelligence').click( function() {
        $('body').removeClass('IntelligenceEnabled');
        return false;
     });

});
</script>
<body>
<iframe id="IamIntelligent" src="/foo.html"></iframe>
<a href="#" id="enableIntelligence">Enable my intelligence!</a>
<a href="#" id="disableIntelligence">Make me gross!!!</a>
</body>
</html>

(/foo.html)

<html>
<body>
<a href="http://www.google.com" class="showMessage">Google</a>
<a href="http://www.facebook.com" class="showMessage">Facebook</a>
<a href="http://www.yahoo.com" class="showMessage">Yahoo</a>
<a href="http://www.microsoft.com" class="showMessage">Microsoft</a>
</body>
</html>

最佳答案

你不能像

这样在加载时将事件委托(delegate)给 iframe 内容

$("body.IntelligenceEnabled #IamIntelligent")

这甚至没有执行。

使用以下代码获取您的功能。

$("#IamIntelligent").on( 'load', function() {
    $("#IamIntelligent").contents().delegate( '.showMessage', 'click', function(e) {
        if($(document.body).hasClass("IntelligenceEnabled")) {
            alert("I'am intelligent");
            return false;
        }
    });
 });

关于php - 做一个iframe智能化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15629992/

相关文章:

php - MySQL 数据无限滚动

javascript - 如何使用javascript检测字符串中的手机号码

javascript - Jquery 选择 tbody 但不是从嵌套表中

javascript - 如何在另一个字符之前插入一个字符?

PHP 到 htaccess?

javascript - 如何在 WordPress 页面中显示可变日期

php - AJAX/MySQL、JavaScript - 数据库和倒计时

javascript - 在另一个页面中打印ajax结果而不刷新页面

javascript - CSS 背景图像未加载故障排除

javascript - 按给定的类和数据 ID 查找 div