マウスオーバーで要素を強調表示するために JavaScript を使用している SVG ドキュメントがあります。私の要素にはすべて名前があります - 一部の要素は同じ名前を持ちます。なぜなら、それらは複数回表示されますが、論理的に同じものを参照するからです。複製された要素の 1 つのインスタンスにマウスを合わせると、それらすべてが強調表示されるようにします。
強調表示を有効にするために、マウスが置かれている要素の名前を調べます。document.getElementsByName()
次に、その名前を共有するすべての要素を検索するために呼び出します。返された要素の配列を使用して、強調表示する適切なスタイルを繰り返し適用します。
これは WebKit ではうまく機能し、Gecko では失敗します - 後者getElementsByName
は未定義であることを通知します。の関数テーブルを見ると、document
実際にそうです。getElementsByClassName
、getElementsByTagName
、getElementsByTagNameNS
すべてそこにあります。getElementsByName
不足している。
Gecko がこのセレクターを除外する理由について何か考えはありますか? この件に関して Google は役に立ちませんでした (私が間違った質問をしたかもしれませんが)。
このセレクターに対する Gecko のサポートの欠如に対するコンパクトな回避策の提案はありますか? クラス属性をハイジャックしたり、(さらに悪いことに) 繰り返されるインスタンスの一意の ID を生成したりして、タスクを達成する必要がないことを強く望んでいます。