Chrome Web Inspector を使用して SVG 要素にマウス イベントをフックid
し、SVG ポリゴン タグに を割り当ててから、それをフックするの$()
と同等のネイティブを使用することができます。document.getElementById
$("#THISONE").addEventListener('click', function() { console.log('clicked it'); });
jQuery DOM メソッドを使用できるようになるとよいので、これを使用する際の負担を少し軽減したいと考えています。
そう...
(function() {
var jq = document.createElement('script');
jq.src = "http://code.jquery.com/jquery-latest.js";
document.appendChild(jq);
})();
生成しUncaught TypeError: Cannot call method 'appendChild' of null
ます。どうやらdocument
存在しないようです。document
js コンソールからアクセスできますが、ブックマークレットとしてロードされたこの機能は機能しません。
次に、コンテンツをjsコンソールに貼り付けようとしましたが、これが生成されます:
Error: HierarchyRequestError: DOM Exception 3
code: 3
message: "HierarchyRequestError: DOM Exception 3"
name: "HierarchyRequestError"
stack: "Error: A Node was inserted somewhere it doesn't belong.↵ at <anonymous>:4:10↵ at Object.InjectedScript._evaluateOn (<anonymous>:602:39)↵ at Object.InjectedScript._evaluateAndWrap (<anonymous>:521:52)↵ at Object.InjectedScript.evaluate (<anonymous>:440:21)"
__proto__: DOMException
任意のヒント?
私の理想的な目標は、Chrome で開いている SVG で使用できるブックマークレットを作成することです。これにより、特定の要素のクリックに応答してポップアップを表示したり、色を変更したりできる委任イベント ハンドラーがインストールされます。
特に、私は によって作成されたグラフの膨大な SVG を扱っていdot
ます。これらのグラフには、蛇行した長いエッジ パスがあり、それらをたどることはほぼ不可能なように重なり合っています。したがって、ノードをクリックすると、ノードに発生するエッジのみを強調表示したいと思います。
それができない場合は、svg を HTML Web ページに埋め込むか、リソースからリンクするハックに頼ります。ややエレガントではありませんが、十分に機能します。