0

iFrame 内のすべてのリンクを無効にしたい。

iFrame は実際には、markItUp テキスト エディターのプレビュー フレームです。別のスタック オーバーフローの回答に基づいて次のことを試しましたが、うまくいきません。

$(".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 コードが無視され (アラートが表示されない)、ページが読み込まれます。

4

2 に答える 2

0

クリックハンドラーをiFrameのドキュメントに添付する必要があります。この質問には、その方法を示す回答があります(最後の回答)

于 2012-05-02T10:45:06.403 に答える
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();
            });
        });
    });
于 2012-05-02T11:30:58.287 に答える