以下は、私がやろうとしていることを示す簡単なテスト ケースです。
<html>
<head>
<title>Test</title>
</head>
<body>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(":target").css('color', 'red');
});
</script>
<ul>
<li id="one">One</li>
<li id="two">Two</li>
<li id="three">Three</li>
</ul>
</body>
</html>
アイデアは、何かがターゲットにされたときに、jQuery/Javascript を介してターゲットにされた項目に対して何かを行うことです (たとえば、test.html#two)。
これは、Firefox と IE 10 では期待どおりに機能しますが、Chrome、Opera、Safari では機能しません。これは一部のブラウザーのバグなのか、私がやろうとしていることが何らかの形で間違っているのか、それとも私が' 仕様またはその他の不十分に正確な部分に違反しました。
jQueryコードを変更すると
alert($(":target").length);
Chrome、Opera、および Safari は document.ready() 中に :target 要素を見つけることができませんが、後で同じコードを (コンソールまたはクリック イベントに関連付けられた関数を介して) 呼び出すと、要素が見つかります。
:target はいつ JS からアクセスできるようになりますか?