javascriptを使用して、htmlファイル間をまたいでcssを展開をしたいと考えています。
同ファイルであれば展開することができます。
Aのhtmlファイルで作ったボタンでAのcssの展開をjavascriptから開くことはできるのですが、
Aのhtmlファイルで作ったボタンからBのファイルを展開しようとするとnull is an not objectのエラーが出てしまうのです。
portal.html
html
1<html lang="ja"> 2<meta charset="utf-8"> 3<head> 4 <title>ポータル</title> 5 <body> 6 <TABLE width="100%" border="1"> 7 <TBODY> 8 <TR> 9 <td align= "TOP" width= "20%" height="100%"> 10 <H4>業務準備</H4> 11 <DIV class="side" align="left"> 12 <各種システム><br> 13 <掲示板><br> 14 <関連><br> 15 <ルール><br> 16 <input type="button" value="展開1" onclick="clickBtn1()"/> 17 <input type="button" value="展開2" onclick="clickBtn2()"/> 18 <br> 19 <b> 20 <div onclick="obj1=document.getElementById('5/13 我が家の怪談').style; 21 obj1.display=(obj1.display=='none')?'block':'none';"> 22 <a style="cursor:pointer;">5/13 我が家の怪談</a> 23 </div> 24 <div id="5/13 我が家の怪談" style="display:none; clear:both;"> 25 <h4>昨晩のことだった!<br><hr></h4> 26 </div> 27 </b> 28 <td colspan= "2" width="50%" height="400"> 29 <DIV class="side" align="center"> 30 <font size="6">周知事項</font><br> 31 内容は<font color="red">タイトルをクリック</font>展開して下さい/検索はCtrl+F(タイトルのみ検索)<br> 32 <iframe Src="news.html" Width="95%" Height="350" name="mintag"></iframe><br> 33 </DIV> 34 </td> 35 </TR> 36 </TBODY> 37 </TABLE> 38 <script src="js/index.js" charset="utf-8"></script> 39 </body> 40</head> 41</html> 42
news.html
html
1<html lang="ja"> 2<meta charset="utf-8"> 3<head> 4 <body> 5 <title>ポータル</title> 6 7 <style type="text/css"> 8 <!-- 9 A:hover{ 10 text-decoration: underline; 11 background-color: lightcyan; 12 } 13 </style> 14 15 <b> 16 <div onclick="obj=document.getElementById('5/8【注意】動物シールについて').style; 17 obj.display=(obj.display=='none')?'block':'none';"> 18 <a style="cursor:pointer;">5/8【注意】動物シールについて</a> 19 </div> 20 <div id="5/8【注意】動物シールについて" style="display:none; clear:both;"> 21 これまでのクッキーについていた動物シールは、<br> 22 キリンさんがついていました。<br><br> 23 </div> 24 </b> 25 26 <b> 27 <div onclick="obj=document.getElementById('5/3【周知】語句登録の追加').style; 28 obj.display=(obj.display=='none')?'block':'none';"> 29 <a style="cursor:pointer;">5/3【周知】語句登録の追加</a> 30 </div> 31 <div id="5/3【周知】語句登録の追加" style="display:none; clear:both;"> 32 @v→【ヴィクトリア】<br> 33 @り→【リンゴスター】or【リサ・ローブ】or【リンカーン】<br><br> 34 </div> 35 </b> 36 <script src="js/index.js" charset="utf-8"></script> 37 </body> 38</head> 39</html>
index.js
javascript
1function clickBtn1(){ 2 console.log("テスト1btn1") 3 const obj = document.getElementById("5/13 我が家の怪談"); 4 console.log(obj); 5 6 if(obj.style.display=="none"){ 7 console.log("obj.style.display"); 8 obj.style.display="block"; 9 } else { 10 console.log("テスト2btn1"); 11 obj.style.display ="none"; 12 } 13} 14 15function clickBtn2(){ 16 console.log("テスト1btn2") 17 const obj2 = document.getElementById("5/8【注意】動物シールについて"); 18 console.log(obj2); 19 20 if(obj2.style.display=="none"){ 21 console.log("obj2.style.display"); 22 obj2.style.display="block"; 23 } else { 24 console.log("テスト2btn2"); 25 obj2.style.display ="none"; 26 } 27}
portal.htmlの展開2のボタンでnews.html内の動物シールを開きたいのですが、TypeError: null is not an objectだと怒られてしまいます。
展開1のボタンですぐ下の我が家の怪談は開くのですが、動物シールはnullだと言われているので参照の引き渡しがうまくできていないためだとは思うのですが自分の今の実力では解決することができないため、
お力添えをいただければと思います。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー