Firefox 専用ですが、最初に一度だけイベント登録の実行が必要です。
ブックマークを実行すると、メッセージボックスでその旨が表示されて、
その後、右クリックでフォーカス取得して実行します。
フォーカスが無い場合は、残念ながらエラーになります。( エラー処理するほどの機能でもないので )
また、IE の outerHTML と同じ事をする為に、フォーカスのエレメントを新たに作成した
SPAN エレメントで挟み込んでいます。たいへんなので削除はしていませんので SPAN は残っていきます。
でも、ページの調査が目的なのそれはそれで良いと思っています。
以下の alert では、文字列を unicode で表現しています。これは、こうやっておかないと、
化けたりするものなのです
Firefox のメッセージボックスは、HTML で作られたものと同じなので、
表示されている文字列は、選択してクリップボードへコピーできます。
if(typeof bookmarklet_focused=='undefined'){
addEventListener("focus",function(event)
{
bookmarklet_focused = event.target;
}
,true);
alert("\u30d5\u30a9\u30fc\u30ab\u30b9\u30a4\u30d9\u30f3\u30c8\u3092\u767b\u9332\u3057\u307e\u3057\u305f\u3002\u76ee\u7684\u306e\u5834\u6240\u306b\u79fb\u52d5\u3055\u305b\u3066\u518d\u5ea6\u5b9f\u884c\u3057\u3066\u4e0b\u3055\u3044");
}
else {
var temp_node = document.createElement("span");
var parent_node = bookmarklet_focused.parentNode;
parent_node.insertBefore(temp_node,bookmarklet_focused);
temp_node.appendChild(bookmarklet_focused);
alert(temp_node.innerHTML);
}
フォーカス位置のHTML定義の取得
<a
href='javascript:if(typeof bookmarklet_focused=="undefined"){addEventListener("focus",function(event){bookmarklet_focused=event.target;},true);alert("\u30d5\u30a9\u30fc\u30ab\u30b9\u30a4\u30d9\u30f3\u30c8\u3092\u767b\u9332\u3057\u307e\u3057\u305f\u3002\u76ee\u7684\u306e\u5834\u6240\u306b\u79fb\u52d5\u3055\u305b\u3066\u518d\u5ea6\u5b9f\u884c\u3057\u3066\u4e0b\u3055\u3044");}else{var temp_node=document.createElement("span");var parent_node=bookmarklet_focused.parentNode; parent_node.insertBefore(temp_node,bookmarklet_focused);temp_node.appendChild(bookmarklet_focused); alert(temp_node.innerHTML);}'
onclick='
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
event.returnValue = false;
}
else {
event.preventDefault();
var s = window.getSelection();
var range = document.createRange();
range.selectNodeContents(document.getElementById("my_src"));
s.addRange(range);
}
alert("【Firefox専用です】右クリックしてポップアップメニューからブックマークして下さい ");
'
>フォーカス位置のHTML定義の取得</a>
posted by
at 2009-03-27 13:10
|
JavaScript
|

|