10

Windows 8.1 / Internet Explorer 11 にアップグレードするまで問題なく動作していた次のコードが、「未定義または null 参照のプロパティ 'createRange' を取得できません」というエラーをスローするようになりました。

var SelectedData = window.external.menuArguments.document.selection.createRange().text;

これに対する修正/回避策はありますか?

*以下の質問は、まだ機能していない新しいコードで更新されました....

<html><head><title>-</title><script type="text/JScript">
function Launch()
{
var TheSelection = document.getSelection();
if(TheSelection != null)
{

.... do  a bunch of stuff

}
window.close();
}
</script></head><body onload="Launch();" </body></html>

window.getselection; も試しました。window.getselection(); window.getselection().tostring();

これらのどれも機能していないようです...???

4

3 に答える 3

18

のドキュメントにdocument.selectionは、上部に次のように記載されています。

選択はサポートされなくなりました。Internet Explorer 11 以降では、getSelection を使用します。詳細については、「互換性の変更」を参照してください。

に変更document.selection.createRange().textdocument.getSelection()ます。

問題はまさに私が予測したものでした。createRange()null または未定義の参照を呼び出しています。具体的にdocument.selectionは、未定義です。エラーメッセージは、何が間違っているかを正確に示していました。

于 2013-11-03T19:16:40.900 に答える
0

それは実際にはあまり文脈ではありませんが、一般的に、エラーメッセージはこれを行うことができなかったことを意味します:

var SelectedData;
var selection = window.external.menuArguments.document.selection;
if(selection != null)
{
  SelectedData = selection.createRange().text;
}

選択を取得しようとしたときに、選択が行われていなかったため、選択は null でした。オブジェクトが null の場合、必要な情報を含む構造が存在しないため、クエリを実行できません。

于 2013-11-03T00:43:35.143 に答える
0

この調整では、以下を見つけることができます。

b=document.selection.getSelection()

またはそれのようなもの 次に、以下のこのコードを使用してチャンスを得ることができます:

b=typeof document.selection!=="undefined"?document.selection.getSelection():null
于 2019-01-03T18:53:00.763 に答える