私は、htmlドキュメントの一部を選択し、それに何らかの注釈を付けることができるWebアプリケーションを開発しています。
選択したテキストを取得するために、IE9、FF、およびSafariでかなりうまく機能する
window.getSelection()
を使用します。
ただし、iPad 2で同じページを使用すると問題が発生します。
単語を1秒間タップして選択するだけの場合、
window.getSelection()
は適切な選択を返します。
テキスト範囲(ここで説明する
http://blog.laptopmag.com/how-to-select-copy-and-paste-text-on-the-ipad)を作成すると、常に「null」が返されます。
私はすでにウィンドウ、ドキュメント、および関連するイベントオブジェクトを調べましたが、成功しませんでした...
どんな助けでも本当にいただければ幸いです!
編集:ほんの小さな例。テキストを選択してボタンを押します。 Safari(PC)では、関数は選択された値を出力します...
<html>
<body>
<script>
function a()
{
alert(window.getSelection());
}
</script>
Hello World! <input type="button" onclick="a();"
</body>
</html>
さて、ようやく問題を解決しました。Timがクリックイベントによって選択が折りたたまれると想定したためです。通常のSafariではこれは起こらないので、私はこれをかなり奇妙な動作と見なします。
ただし、解決策はクリックイベントを使用しないことです。代わりに、jqueryモバイルが提供する「vlick」を使用しています。
完全に機能する例:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
Hello World! <input type="button" id="button1" />
<script>
function a()
{
alert(window.getSelection());
}
$("#button1").bind("vclick",a);
</script>
</body>
</html>