how to get selected text from iframe with javascript?

后端 未结 5 1682
余生分开走
余生分开走 2020-11-29 08:46

 
  

        
5条回答
  •  醉梦人生
    2020-11-29 09:02

    document.getSelection

    Is on the outer document. To get the selection of the document in the iframe you need to grab the inner document:

    var iframe= document.getElementById('my');
    var idoc= iframe.contentDocument || iframe.contentWindow.document; // ie compatibility
    
    idoc.getSelection()
    

    Note however that WebKit does not support document.getSelection() or document.selection. Try replacing it with window.getSelection() which works in both Firefox and WebKit, but returns a selection object (a collection/wrapper around Ranges), which needs stringing:

    var idoc= iframe.contentDocument || iframe.contentWindow.document;
    var iwin= iframe.contentWindow || iframe.contentDocument.defaultView;
    
    ''+iwin.getSelection()
    

    I'm not sure what the point of this is:

    if (window.RegExp) {
      var regstr = unescape("%20%20%20%20%20");
      var regexp = new RegExp(regstr, "g");
      str = str.replace(regexp, "");
    }
    

    RegExp is basic JavaScript dating back to the very earliest version; it will always be there, you don't have to sniff for it. The URL-encoding of multiple spaces is quite unnecessary. You don't even need RegExp as such, a string replace could be written as:

    str= str.split('     ').join('');
    

提交回复
热议问题