― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2016年12月17日(土) 20:36 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 WebExtensions に対応した拡張を書いています。

 表題にありますようにユーザインターフェースを構成する HTML 文書のある要素に DOM でアクセスができません。具体的には location.js で示した JavaScript コードの getElementById で HTMLElement ではなく、null が返ってきます。要素を取得するにはどうすればよいでしょうか。
 なお、location.html は browser.windows.create() にて POPUP させています。

location.html
コード:
<!DOCTYPE html>
<html>
<head>
<title>Location</title>
<meta charset="UTF-8">
<script src="location.js"></script>
<link rel="stylesheet" type="text/css" href="location.css">
</head>
<body id="main_box">
<div id="prefecture_box">
<div>都道府県</div>
<select name="prefecture" size="1" id="pref_list">
<option>北海道</option>
<option>青森県</option>
<option>秋田県</option>
<option>岩手県</option>
<option>山形県</option>
<option>宮城県</option>
<option>福島県</option>
<option>茨城県</option>
<option>栃木県</option>
<option>群馬県</option>
<option>埼玉県</option>
<option>東京都</option>
<option>神奈川県</option>
<option>千葉県</option>
<option>静岡県</option>
<option>山梨県</option>
<option>新潟県</option>
<option>長野県</option>
<option>富山県</option>
<option>石川県</option>
<option>福井県</option>
<option>岐阜県</option>
<option>愛知県</option>
<option>三重県</option>
<option>滋賀県</option>
<option>京都府</option>
<option>大阪府</option>
<option>奈良県</option>
<option>和歌山県</option>
<option>兵庫県</option>
<option>岡山県</option>
<option>鳥取県</option>
<option>広島県</option>
<option>島根県</option>
<option>山口県</option>
<option>香川県</option>
<option>徳島県</option>
<option>愛媛県</option>
<option>高知県</option>
<option>福岡県</option>
<option>佐賀県</option>
<option>長崎県</option>
<option>大分県</option>
<option>熊本県</option>
<option>宮崎県</option>
<option>鹿児島県</option>
<option>沖縄県</option>
</select>
</div>
<div id="region_box">
<div>地方</div>
<select name="region" size="1" id="reg_list">
</select>
</div>
</body>
</html>


location.js
コード:
var elm=document.getElementById('pref_list');
console.log(elm);

_________________
Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2016年12月18日(日) 10:16 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 自己解決しました。

 ケアレスミスでした。以下のように location.js のコードを変更するとうまく行きました。文書をロードし終える前に getElementById を実行していました。

コード:
(function(){
  document.addEventListener("DOMContentLoaded", function(){
    var elm=document.getElementById('pref_list');
    console.log(elm);
  }, false);
})();

_________________
Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 2 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[38人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean