一連の要素を反復処理する GreaseMonkey スクリプトを作成しています。要素ごとに、後でその要素を参照するために使用できる文字列 ID が必要です。要素自体にはid
属性がなく、元のドキュメントを変更して属性を与えることはできません (ただし、スクリプトで DOM を変更することはできます)。参照が必要になったときに、GreaseMonkey スクリプト自体が範囲外になるため、参照をスクリプトに保存できません。たとえば、ブラウザが使用する「内部」IDを取得する方法はありますか? Firefox のみのソリューションで問題ありません。他のシナリオに適用できるクロスブラウザー ソリューションは素晴らしいものです。
編集:
GreaseMonkey スクリプトが範囲外の場合、後で要素をどのように参照していますか? 彼らの GreaseMonkey スクリプトは、イベントを DOM オブジェクトに追加しています。参照を配列または他の同様のメカニズムに格納することはできません。イベントが発生すると、GreaseMonkey スクリプトが範囲外になるため、配列がなくなるためです。そのため、イベントは、イベントがアタッチされたときにスクリプトが持っていた要素参照について何らかの方法で知る必要があります。問題の要素は、それが接続されている要素ではありません。
要素にカスタム プロパティを使用することはできませんか? はい、しかし問題はルックアップにあります。そのカスタムプロパティが目的のIDに設定されているものを探して、すべての要素を繰り返し処理する必要があります。それは確かに機能しますが、大きなドキュメントでは非常に時間がかかる可能性があります. 私は、ブラウザが検索の面倒な作業を実行できるものを探しています。
ドキュメントを変更できるかできないか? ソース ドキュメントを変更することはできませんが、スクリプトで DOM を変更することはできます。質問で明確にします。
クロージャーを使用できませんか?Closuses は機能することが判明しましたが、最初は機能しないと思っていました。私の後の投稿を参照してください。
「使用できる内部ブラウザ ID はありますか?」という質問に対する答えのように思えます。は「いいえ」です。