1

私は純粋な html と javascript を使用して、ブラウザー間で互換性のあるポータブル ドキュメントを作成しています。検索/蛍光ペン ボックスと結果ページを別々のフレームに配置しています。つまり、ff と chrome (disable-web-security パラメーターを使用) ではすべて正常に動作しますが、Opera ではエラーがスローされます。これがなぜなのか、どうすれば修正できるのか、私にはわかりません。

どんな助けでも大歓迎です。

Opera が例外をスローする関数:

function selectElementContents(el) {
    if (window.getSelection && document.createRange) {
    var sel = window.getSelection();
    var range = document.createRange();
    range.selectNodeContents(el);
    sel.removeAllRanges();
    sel.addRange(range);
} else if (document.selection && document.body.createTextRange) {
    var textRange = document.body.createTextRange();
    textRange.moveToElementText(el);
    textRange.select();
}
}

Opera のエラー コンソール:

Uncaught exception: DOMException: WRONG_DOCUMENT_ERR
Error thrown at line 56, column 8 in selectElementContents(el) in xy.js:
range.selectNodeContents(el);
4

1 に答える 1

3

使用する範囲をドキュメントに作成する必要があります。jsfiddleデモに基づいてすでにこれを解決したと思いますが、たとえば次の行

var range = document.createRange();

する必要があります

 var range = el.ownerDocument.createRange();
于 2012-10-26T14:46:53.847 に答える