2011-01-14 13 views
0

ich den folgenden Code verwende für Markieren des Textes in der Iframe, aber ich kann esjQuery ist nicht ein Iframe Erkennung

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>")); 

      } 
     }); 
    }); 
    }); 

Antwort

1

zu arbeiten Wenn iframe1 die ID des ist, müssen Sie es platzieren in Anführungszeichen für Ihren Selektor.

Also statt:

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

Sie brauchen:

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

Upps ...! Vergessen, es hier zu aktualisieren, aber tatsächlich habe ich das versucht, aber es funktioniert nicht – Yahoo

0
$(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>")); 
     } 
    }) 
}) 
+0

Es hat nicht funktioniert, oder ich denke, ich wusste nicht, wie man es implementiert. Ich habe w Hole Ihres Codes kopiert und in $ (# iframe1) eingefügt. Live ("mouseup", function() {ist es der richtige Weg? – Yahoo