无法使用jQuery禁用iframe中的链接

时间:2012-05-02 10:39:49

标签: jquery html iframe click

我想禁用iFrame中的所有链接。

iFrame实际上是markItUp文本编辑器的预览框架。我已根据另一个Stack Overflow答案尝试了以下内容,但它对我不起作用:

$(".markItUpPreviewFrame a").live('click', function(e) {
    e.preventDefault;
    alert("You twat! This is a preview, where do you think you're going?");
    return false;
});

以下是使用markItUp iframe的HTML的大致轮廓:

<div id="markItUpMarkItUp" class="markItUp">
<div class="markItUpContainer">
    <div class="markItUpHeader"></div>
    <div class="clear"></div>
    <textarea id="markItUp" class="markItUpEditor" name="bodyText""></textarea>
    <div class="markItUpFooter"></div>
    <iframe class="markItUpPreviewFrame">
        <html>
            <head></head>
            <body>
                links in here...
            <body>
        </html>
    </iframe>
</div>

当我点击链接时,它似乎忽略了我的jQuery代码(我没有得到警报)并且无论如何加载页面。

2 个答案:

答案 0 :(得分:0)

您需要将点击处理程序附加到iFrame中的文档,this question有一个答案显示如何执行此操作(最后一个答案)

答案 1 :(得分:0)

试试这个:

   $(document).ready(function(){
        //Make sure the iframe is done loading before you attach an event
        $(".markItUpPreviewFrame").load(function(){
            // Get the body element
            var frameBody = $(".markItUpPreviewFrame").contents().find("body");

            // Get all links inside the BODY tag
            $('a', frameBody).click(function(e){
                    //Disable all default actions       
                    e.preventDefault();
            });
        });
    });