JQuery не обнаруживает Ифраме - PullRequest
0 голосов
/ 14 января 2011

Я использую следующий код для выделения текста в Iframe, но не могу заставить его работать

  function getSelectedText() {
        if (window.getSelection) {;
            return window.getSelection().toString();
        } else if (document.getSelection) {;
            return document.getSelection();
        } else if (document.selection) {;

            return document.selection.createRange().text;
        }
    }
    $(document).ready(function () {


        $("#iframe1").live("mouseup", function () {
            selection = getSelectedText();
            if (selection.length >= 3) {

                $(this).html($(this).html().replace(selection, "<span class='highlight'>" + selection + "</span>"));

            }
        });
    });
    });

Ответы [ 2 ]

1 голос
/ 14 января 2011

Если iframe1 - это идентификатор <iframe>, вам необходимо поместить его в кавычки для вашего селектора.

Так что вместо:

$(#iframe1).live("mouseup", function () {
   //...

вам нужно:

$('#iframe1').live("mouseup", function () {
   //...
0 голосов
/ 14 января 2011
$( function() {
   var myiframe = $($.browser.msie ? frames["iframe1"] : "#iframe1");
   // doesn't work in Opera < 9
   myiframe.load( function() {
       selection = getSelectedText();

       //below code works but i dont know about $(this) will work or not but you can try your code
       //var w = this.contentWindow;
       //if(!w) w = myiframe[0]; // IE
       //alert("Number of anchors: " + w.$("a").size());
       //alert("Document title: " + w.document.title);

        if (selection.length >= 3) {
            $(this).html($(this).html().replace(selection, "<span class='highlight'>" + selection + "</span>"));
        }
   })
})
...