• 締切済み

設定XULファイルから他のXULファイルのID取得ができない

Firefoxの拡張機能を作っています。 ・本体のxulファイル ・設定xulファイル ・jsファイル この3つのファイルがあるのですが、設定xulファイルからjavascrptで 本体のxulファイルのエレメントの属性をいじろうと試みております。 しかし! 設定xulファイルからjavascrptで関数を呼び出し document.getElementById(\"\"); では設定xulファイルないのIDしか取得できません。どうしたら本体のxulファイルのIDが取得できるのでしょうか? 教えていただけますでしょうか。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

外部XMLとして取り込もうと試みたらどうだろう

tmhands
質問者

お礼

ご回答ありがとうございます。 >外部XMLとして取り込もうと試みたらどうだろう っといいますと、設定xulファイルの先頭に <?xul-overlay href="chrome://本体.xul"?> のように記入すれば本体xulファイルのIDを参照できる ようになるのでしょうか?? お忙しいところ申し訳ありませんがよろしくお願いします。

関連するQ&A

  • idからエレメント取得するには?

    (1)<INPUT NAME="name1" MAXLENGTH="10" VALUE="" id="id1" > (2)<INPUT NAME="name2" onKeyPress="chk(event);" VALUE="" id="id2"> 上記の二つのinputタグのIDからエレメントを取得したいと思っています 知っている限りではgetElementByIdを使おうと思い 例) a = document.getElementById('id1'); b = document.getElementById('id2'); 実行してみた所(1)は上手く行きましたが (2)では上手く行きませんでした。 アラートを表示させ結果を見てみた所 (1)[object] (2)null になりました どうして(2)のほうはエレメントが取れずnullになるのでしょうか? また(2)のinputタグからエレメントを取る方法はありますでしょうか? よろしくお願いいたします

  • イベントリスナーに設定した関数内で、id属性の値を取得するには

    IEでイベントリスナーに設定した関数で、イベントを発生させた要素のid属性値を取得する方法が分からずに困っています。 記述したコードは下記のようになります。Firefoxではうまく動作しました。 clickHandler内でFirefoxのe.currentTarget.idに対応するような処理はどのように行えばよいでしょうか。 ------------ JavaScript部分 ----------------------- function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; } else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r; } else { elm['on' + evType] = fn; } } function clickHandler(e) { var id; if (document.all && !window.opera) { // IEの場合に、ここの処理でid属性の属性地 hoge1やhoge2を取得したい。 // id = window.event.srcElement.id; これではだめ } else { id = e.currentTarget.id; } // idに応じた処理 } var elm1 = document.getElementById('hoge1'); var elm1 = document.getElementById('hoge2'); addEvent(elm1,'click',clickHandler,false); addEvent(elm2,'click',clickHandler,false); ------------ HTML部分 ----------------------- <li><a id="hoge1" href="#"><img src="●●" /></a></li> <li><a id="hoge2" href="#"><img src="●●" /></a></li> 先に進むことができずに困っています。よろしくお願いします。

  • htmの拡張子を変えると他のファイルが見れなくなります。

    htmの拡張子を変えると他のファイルが見れなくなります。 htmの拡張子のファイヤーフォックスドキュメントの画像ファイルを、フォトビューアに再設定して見たいのですが、変えてしまうと今度はサイトの画面を保存をしたファイルなどがフォトビューア設定になっていると見れなくなってしまいます。 画面保存ファイルはファイヤーフォックスでみれて、htm拡張子のファイルはフォトビューアで見たいのですが、この区切りはどうすればよいのでしょうか?わかりづらくてすみません。

  • innerHTMLにて設定した情報を再度取得する事は可能でしょうか?

    innerHTMLにて指定idタグ情報を変更する事は出来るのですが、innerHTMLにて設定した情報を再度取得する事は可能でしょうか? 下記のコードを考えてみたのですが、 再取得出来ません。 環境はXPでIE6とFF3です。 ご教授よろしくお願いします。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>DOM情報の再取得</title> <script type="text/javascript" language="JavaScript"> <!-- function setText1(data) { document.getElementById("test1").innerHTML = data; return false; } function setText2(data) { document.getElementById("test2").innerHTML = data; return false; } function setText3(data) { document.getElementById("test3").innerHTML = data; return false; } //--> </script> </head> <body> <div id="test1"></div> <div id="test2"> </div> <div id="test3">テスト3</div> <br> <a href="javascript:void(0);" onClick="setText1('セットテスト1'); return false;">1</a> <a href="javascript:void(0);" onClick="setText2('セットテスト2'); return false;">2</a> <a href="javascript:void(0);" onClick="setText3('セットテスト3'); return false;">3</a> <script type="text/javascript" language="JavaScript"> <!-- document.write("<br><br>\n"+'再取得'+"<br><br>\n"); //document.write("js_test1="+document.getElementById("test1").childNodes[0].nodeValue+"<br>\n");//エラーになるのでコメントアウト document.write("js_test2="+document.getElementById("test2").childNodes[0].nodeValue+"<br>\n"); document.write("js_test3="+document.getElementById("test3").childNodes[0].nodeValue+"<br>\n"); //--> </script> </body> </html>

  • HTMLでのid とnameの違い

    HTMLとJavaScriptを使ってWebページを作っていますが、 id と name の使い分け方がよくわかりません。 id は各エレメントに個別に与える識別子と認識していて、getElementById() メソッドなどでよく使うのですが、それと name プロパティーはどう違うのでしょうか? あるサンプルコードに次のようなものがありました。 <a href="http://www.google.com" name="google_link"> <img src="google.gif" id="engine-1" alt="google graphic"> </a> というHTML部分があり、しばらく後に function show_attribs() { var attribs=""; attribs += "Link name: " + window.document.getElementById("engine-1").name; ..... alert(attribs); } というJavaScriptの関数があり、結果としてアラートボックスに  Link name: google_link と表示されるものです。 よくわからないのは、"engine-1" という id で取得した <img> エレメントが、 <a> エレメントに設定したはずの name プロパティー とその値を持っているということです。なんだか二つのエレメントが一体になったように扱われていますが、なぜそうなるのかわかりません。 どなたかよく説明していただけないでしょうか。お願いします。

    • ベストアンサー
    • HTML
  • javascript初心者です。

    javascript初心者です。 特定要素の相対座標位置を取得したく、getBoundingClientRect()を使用しているのですが、firefox2.0でも、見れるようにしなくてはいけなくて、その場合、getBoundingClientRect()がfirefox2.0では使えません。 それに変わる関数などを探していましたが、わからなかったので、下記のソースを var element = document.getElementById("sample"); var elementY = element.getBoundingClientRect() 以下のように変えてみました。 var element = document.getElementById("sample"); var elementY = element.offsetTop - window.screenY; ですが、予期した値が取得できません。 ページ内で、スクロールすると、elementYが変わるようになっています。 どう書き換えたらよいか、どなたかご教授お願いいたします。

  • プルダウンリストの内容の取得がうまくいかなくて困っています。

    こんばんは。 下記のようにwork_in1というid名のプルダウンリストで選択されている内容を取得しています。 work_inC1=work_in1.options[work_in1.selectedIndex].value; Firebugでデバッグ(これが正しい言い方なのかわかりませんが…)すると「グローバルスコープで ID または name 属性値により要素を参照しています。代わりに W3C 標準の document.getElementById() を使用してください。」という注意(エラーではなさそう)が出ます。 実際、IE7では思った通りのことができているのですが、FireFoxこれのせいかほかの部分がうまく働かないのです。 getElementById()を使って書き直せばいいのだろうとは思うのですが、書き方がわからなくて困っています。 ということで… 1.work_inC1=work_in1.options[work_in1.selectedIndex].value;のdocument.getElementById()を使った書き方 2.Firebugの注意の意味(name 属性値により要素を参照とかの意味) 3.なぜIE7ではうまくいくのに、FireFoxではうまくいかないのか 以上三点について教えていただきたいのです。 どれか一つでもいいのでご存知の方がいらっしゃったらご教授ください。 お察しかと思いますが、当方JavaScript初心者のため、何かおかしな点や不備がありましたら遠慮なく言ってください。勉強になりますので。 どうぞよろしくお願いします。

  • ネスケでid属性値の取得

    下記のid属性値のネスケでの取得のしかたがわかりません。 <input type="text" size="20" name="NAME1" id="sample"> IEならdocument.main.NAME1.idでとれるのですが・・。

  • 同じIDで定義した要素の配列を取得したいが

    お世話になります。 ドキュメントで、IDに同じ名前を振付けることで 配列になっている要素を取得する方法を教えたください。 例) <div id="sec1">あああああ</div> <div id="sec1">いいいいい</div> <div id="sec1">ううううう</div> <div id="sec1">えええええ</div> 上記のようなケースだと、「sec1」が配列となって、 定義されますが、実際に取得して使う場合です。 getElementById("sec1")だとnullになりますが、 getElementById("sec1[0]")だと一つずつは取得できます。 これをまとめて配列として取得する方法をお願いいたします。 初心者ですみません。

  • form につけた id 値の取得方法

    form 内に id という名前の input 要素があると、form につけた id 値が取得できません。firefox で確認しましたが、例の f2.id が input 要素になります。このような場合 form の id 値はどのようにすれば取得できるでしょうか。 <!doctype html> <html> <head><title>id test</title></head> <body> <form id="f1" name="f1"> <input type="hidden" name="idx"> </form> <form id="f2" name="f2"> <input type="hidden" name="id"> </form> <script type="text/javascript"> var f1 = document.getElementById('f1'); var f2 = document.getElementById('f2'); alert("f1.name: " + f1.name + ", f1.id: " + f1.id + "\nf2.name: " + f2.name + ", f2.id: " + f2.id); </script> </body> </html>