javascriptでカレンダー作成時にwriteができない

このQ&Aのポイント
  • JavaScriptでカレンダーを作成している際に、idoc.writeでlinkとbodyを書き込めずに困っています。
  • 退職者から引き継いだPCで、idoc.writeがうまく機能しない問題が発生しています。
  • 環境回りも確認しましたが、解決策が見つかりません。どのようにすれば書き込めるようになるでしょうか。
回答を見る
  • ベストアンサー

javascriptでwriteできない

カレンダーをjavascriptで作成しているのですが、以下でidocに書き込みしようとした際に、linkとbodyが書き込めずに困っております。 -------------------- var idoc = null; cal="<title>カレンダ</title><script type='text/javascript'>var arGYear = new Array('1912','1926','1989');var arGDate = new Array('19120731','19261225','19890108');var arGengo = new Array('大正','昭和','平成');var arGengoI = new Array('T','S','H');var arHoliday = new Array('20170204','20170205','20170210','20170211','20170212','20170218','20170219','20170225','20170226','20170304','20170305','20170311','20170312','20170318','20170319','20170320','20170325','20170326','20170327','20170401','20170402','20170403','20170404','20170405','20170406','20170407','20170408','20170409','20170410','20170411','20170412','20170413','20170414','20170415','20170416','20170417','20170418','20170419','20170420','20170421','20170422','20170423','20170424','20170425','20170426','20170427','20170428','20170429','20170430','20170501');</script><script type='text/javascript' src='./js/ifrmCalendar.js'></script><link href='css/ifrmCalendar.css' rel='stylesheet' type='text/css' /><body></body>"; idoc.write(cal); -------------------- 現状、IE11,cromeでの再現を確認しています。(firefoxは未試験) どのようにすれば書き込めるものでしょうか。 退職者から引き継いだPCで、退職者が使用していた際には発生していなかったのですが、私が当該PCにアカウント作成して使用するようになってから発生しております。 環境回りも確認しているのですが、それと思われるものも見つけられません。 お教え頂けますと幸いです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

>>別のファイルで処理している可能性があります。 >残念ながら、そういった処理は行われていないようです。 逆に他のファイルから そのファイルが参照されている可能性もあります。 そのファイルの拡張子が「js」になってませんか?

cra23mog
質問者

お礼

色々と試していると、VisualStudioのデバッグではなくIISから見ると動くことが判明しました。javascript単体の話ではなさそうなので、以下で新規質問とさせて頂きました。 ------------------------------ VisualStudioとIISでのJSの挙動 https://okwave.jp/qa/q9363254.html ------------------------------ 何度もご回答頂いたamanojaku1様にベストアンサーを付け、ここではクローズさせて頂きます。 よろしければ新規質問もご確認願います。

cra23mog
質問者

補足

ファイル名は「ifrmCalendar.js」です。 内部参照のような形式なのかと思いますが、よく分かりません・・・。

その他の回答 (6)

回答No.7

>>idoc = target.contentDocument; >↑良く分かりませんが、「target」変数に何か代入されてますか? target変数への代入を探されているようですが、No2に補足に var target = parent.document.getElementById( id ); .. idoc = target.contentDocument; とあるので、これのことですよね。 前後が不明ですが、document.writeでなくオブジェクトの.writeを使っているということは 親ウィンドウから、iframeの子ウィンドウのコンテンツを触っているのでしょう。 本題の、linkやbodyができない件ですが、 ブラウザのJavaScriptのデバッガを使って、どこで止まっているか確認してみては どうですかね。

cra23mog
質問者

お礼

デバッガでは、直前まで変数calにlinkもbodyも保持していますが、writeすると消失してしまいます。

回答No.6

>ファイル名は「ifrmCalendar.js」です。 「js」ファイルはライブラリーのような物で、本体から参照して使われます。 拡張子が「html、htm」(大文字の場合もあります)のファイルの中で「ifrmCalendar.js」を参照している本体(ファイル)があるハズです。

回答No.4

cal 変数の代入文中に、 </script> という文字列が2箇所ありますが これを このJavaScriptの終端と誤認識してしまっているのかもしれません。 </script> ↓ </s" + "cript のように分解してみてはどうでしょう?

cra23mog
質問者

お礼

残念ながら、影響なしでした。

回答No.3

>再確認したのですが、上記以外の処理はしていないようです。 >どうしたものか、頭を抱えております・・・。 別のファイルで処理している可能性があります。 ファイルの先頭の方で下記のような感じで別ファイルを参照してないかチェックしてみて下さい。 <script language=JavaScript type=Text/JavaScript src="ファイル名"></script>

cra23mog
質問者

お礼

残念ながら、そういった処理は行われていないようです。

回答No.2

>idoc = target.contentDocument; ↑良く分かりませんが、「target」変数に何か代入されてますか?

cra23mog
質問者

お礼

会社を出てしまったのでPG確認出来ませんが、先の補足に書いた以外の処理はなかったかと思います。 が、ひょっとするとparent側で何かしているかもしれません。 明日、確認して補足に記載します。 よろしくお願いいたします。

cra23mog
質問者

補足

再確認したのですが、上記以外の処理はしていないようです。 どうしたものか、頭を抱えております・・・。

回答No.1

>idocに書き込みしようとした際に、linkとbodyが書き込めず 通常「write」メソッドは「document」オブジェクトの「write」メソッドを使うものですが? document.write(~);

cra23mog
質問者

お礼

ご回答ありがとうございます。 補足コメントにもう少しPGを書きました。 知見をお借りできますと幸いです。

cra23mog
質問者

補足

PG抜けていて申し訳ありません。 以下が全体の流れになります。 -------------------- var target = parent.document.getElementById( id ); var idoc = null; idoc = target.contentDocument; var cal="<title>カレンダ</title><script type='text/javascript'>var arGYear = new Array('1912','1926','1989');var arGDate = new Array('19120731','19261225','19890108');var arGengo = new Array('大正','昭和','平成');var arGengoI = new Array('T','S','H');var arHoliday = new Array('20170204','20170205','20170210','20170211','20170212','20170218','20170219','20170225','20170226','20170304','20170305','20170311','20170312','20170318','20170319','20170320','20170325','20170326','20170327','20170401','20170402','20170403','20170404','20170405','20170406','20170407','20170408','20170409','20170410','20170411','20170412','20170413','20170414','20170415','20170416','20170417','20170418','20170419','20170420','20170421','20170422','20170423','20170424','20170425','20170426','20170427','20170428','20170429','20170430','20170501');</script><script type='text/javascript' src='./js/ifrmCalendar.js'></script><link href='css/ifrmCalendar.css' rel='stylesheet' type='text/css' /><body></body>"; idoc.write(cal); -------------------- 私自身はjavascriptに詳しくなく、この書き方が妥当なのかが判別出来ず、引き継いだものがそうなっていたとしけ言えない状況です。 よろしくお願いいたします。

関連するQ&A

  • javascriptエラーについて教えてください。

    メアドを直接ソースに書かないようにするためのjavascriptで 外部ファイルを読み込むように実行してみたのですが、 「実行しましたが、ページでエラーが発生しました。」となり、 ライン:9 文字:1 エラー:‘CSAct’は宣言されていません。 コード:0 という内容のメッセージが出ます。 【HTML】 1:<HTML> 2:<HEAD> 3:<TITLE>情報</TITLE> 4:<meta http-equiv="content-type" content="text/html;charset=shift_jis"> 5:<LINK rel="stylesheet" href="××css" type="text/css"> 6:<script type="text/javascript" src="mail.js"></script> 7: <script type="text/javascript"> 8: <!-- 9: CSAct[/*CMP*/ '1320E1966'] = new Array(CSGoBack1); 10: // --> 11: </script> 12: </HEAD> 13: <body>~ 【メアドの箇所】 E-mail:<script type="text/javascript"><!--// add_AAA(); //--> </script> 【外部ファイル_mail.js】 function add_AAA(){ mail="AAA." + "BBB" + "@CCC.ne.jp"; document.write(mail.link("mailto:" + "AAA." + "BBB" + "@CCC.ne.jp")); } はっきり言ってjavascriptについて全然わかっていない超初心者です。。。 このソースもよさそうなところから引っ張ってきただけなので、 何をどう直していいのか、過去ログを見てもお手上げです。 どなたかエラーの原因がお分かりになりましたらご教授いただけないでしょうか? よろしくお願いします。

  • 複数のjavascriptが作動しない

    http://www.coolwebwindow.com/template/public.php 上記無料で配布されているホームページのテンプレートに 下記lightboxを設置しました。 http://lokeshdhakar.com/projects/lightbox2/ このテンプレートには、ページ内リンクへの移動がスムーズになる javascripが設置されているのですが、 このページにlightboxを追加すると スムーズに移動するjavascriptが無効になってしまいます。 <!--ページをスムーズに移動するjs--> <link rel="stylesheet" href="css/common.css" type="text/css" /> <script type="text/javascript" src="js/common.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <!--lightboxのjs--> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /><script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> どのように対処すればいいのでしょうか? ご教授お願いいたします!

  • JSの記述を別ファイルに移す

    下記のHTML内の <script type="text/javascript">~</script> をtest.jsとして別ファイルに移す場合にどのように、記述するればよいのでしょうか。単純にコピペしたのですがうまくいきません。 初歩的だとは思いますが、ご指導をお願いします。 --------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/Draggable.js"></script> </head> <body> <div id="test1" class="test"></div> <div id="test2" class="test"></div> <script type="text/javascript"> var test1 = new Draggable("test1"); var test2 = new Draggable("test2"); </script> </body> </html>

  • Javascriptの外部サーバーからの読み込み(greybox)

    いつも参考にさせていただいてます。 greyboxを使ってページを表示したいのですが、 使っているサーバーはjsファイルなどがアップロードできない、CMSサービスのサイトなので、 別のレンタルサーバーにアップロードしたjsファイルを読み込んで動かしたところうまくいきません。 模範例では、 ----------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Sample</title> <link rel="stylesheet" href="greybox/gb_styles.css" type="text/css" media="all"> <script type="text/javascript"><!-- var GB_ROOT_DIR = "./greybox/"; // --></script> <script type="text/javascript" src="greybox/AJS.js"></script> <script type="text/javascript" src="greybox/AJS_fx.js"></script> <script type="text/javascript" src="greybox/gb_scripts.js"></script> </head> <body> <h1>GreyBox サンプル</h1> <a href="http://job.mycom.co.jp/" title="job" rel="gb_page[480,360]"> 毎日就職ナビのページ表示 </a> </body> </html> ----------------------------------- なのですが、パスを絶対パスに変えて ----------------------------------- <link rel="stylesheet" href="http://mydomain/greybox/gb_styles.css" type="text/css" media="all"> <script type="text/javascript"><!-- var GB_ROOT_DIR = "http://mydomain/greybox/"; // --></script> <script type="text/javascript" src="http://mydomain/greybox/AJS.js"></script> <script type="text/javascript" src="http://mydomain/greybox/AJS_fx.js"></script> <script type="text/javascript" src="greybox/http://mydomain/gb_scripts.js"></script> ----------------------------------- と変更しました。 成功例(jsファイル同一サーバー上):http://greybox.main.jp/test_ng/index2.html 失敗例(jsファイル別サーバー上):http://greybox.main.jp/test_ok/index1.html 対応方法をお教え下さい。よろしくお願い致します。

  • Ajaxのウィンドウ表示位置について

    ページを開くとAjaxのウインドウが表示されるようになっています。 バックには既にサイトが表示されている状態でその上にウインドウが出てくるイメージです。 ソースは以下のようになっています。 <html> <head> <title>titletitle> <script type="text/javascript" src="js/prototype.js"> </script> <script type="text/javascript" src="js/effects.js"> </script> <script type="text/javascript" src="js/window.js"> </script> <script type="text/javascript" src="js/window_ext.js"> </script> <script type="text/javascript" src="js/debug.js"> </script> <link href="css/default.css" rel="stylesheet" type="text/css"> <link href="css/spread.css" rel="stylesheet" type="text/css"> </head> <body> <script type="text/javascript"> var win = new Window({className: "spread", title: "タイトル", top:50, left:50, width:500, height:500, zIndex: 100, url: "http://www.linkstyle33.com/", showEffectOptions: {duration:3}}) win.show(); </script> --サイトここから-- --サイトここまで-- </body> </html> top:50, left:50,で表示位置を設定することはわかるのですが ウインドウの真ん中に出したいのですがやりかたがわかりません。 試しに50%としてみたもののpx指定になっているようで表示すらされませんでした。 サイトがバックにある状態でウインドウを出したいのでiframe以外で ウインドウを真ん中に表示する方法はあるのでしょうか?

  • prototipの設定

    質問させていただきます。 <script src="js/prototype.js" type="text/javascript"></script> <script src="js/effects.js" type="text/javascript"></script> <script src="js/prototip.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="http://yourdomain/prototip.css"> <script type="text/javascript"> function init() { new Tip('test', 'ToolTip simple', {title: 'title'}); Event.observe(window, 'load', init, false); </script> </head> <body> <a href="" id="test">test</a> </body> </html> 以上のように記述して、動かしてみたのですが、動きません。 何処が違っているか解るか炊いたら教えていただけ無いでしょうか。

  • javascriptとhtmlでテーブル

    あの、分からないことがあります。 <UL>を使って表示したリストを今度はテーブルに埋め込みたいのですがどのようにしたら良いでしょうか?strUniversityで貯めた文字列をテーブルのヘッダーにしてfor文でarray内の値をULで表示してそれぞれをそれぞれのセルに入れて一つのテーブルを作りたいのですが失敗ばかりしてしまいます。 どのようにしたら良いでしょうか?宜しくお願いします。スクリーンショットとソースは以下に。 <HTML> <HEAD> <LINK href="global.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"/> <title></title> </HEAD> <BODY> <script type="text/javascript"> document.title="Courses" //Print document title var strUniversity = "State University"; var arrCourses =new Array(5); arrCourses[0]="English"; arrCourses[1]="Music"; arrCourses[2]="Geography"; arrCourses[3]="Information Systems"; arrCourses[4]="Chemistry"; document.write(strUniversity.toUpperCase()+"<br/>"); for(i=0; i<5; i++) { document.write("<UL><LI>"+arrCourses[i]+"</LI></UL>"); } </script> </BODY> </HTML>

  • thickboxのjavascriptについて

    ウェブサイト作成初心者です。 ホームページの一部のページでthickboxを使用してhtmlを表示するページを作ろうとしています。 その場合 <head>~</head>内に <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> <link href="thickbox.css" rel="stylesheet" type="text/css" /> はthickboxを使うページだけに記述すればいいのでしょうか。それとも前ページに記述しないといけないのでしょうか。 お分かりなられる方、お手数ですが教えてくださいませ。

    • ベストアンサー
    • HTML
  • javascriptで困っています。教えてください

    以下のようにjavascriptの内容を書いた外部のテキストファイルを読み込んで、実行しようとしているのですが、うまくいきません。普通にjavascriptを読み込むのは分かっているのですが、このような方法ができないのでしょうか?よろしくお願いします。 <!doctype html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> </head> <body> <div id="jsbox"></div> <script type="text/javascript"> var jsbox = document.getElementById("jsbox"); //非同期通信///////////////////////////////////////////// var xmlHttp; loadText(); function loadText(){ if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else{ if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttp = null; } } xmlHttp.onreadystatechange = checkStatus; xmlHttp.open("GET", "http://xxxxxxxxxxxx/js_test.txt", true); xmlHttp.send(null); } function checkStatus(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ var str = xmlHttp.responseText;alert(str); jsbox.innerHTML = str; test_js(); } } ///////////////////////////////////////////////////////////////// </script> </body> </html> テキストファイルをhttp://xxxxxxxxxxxx/js_test.txtに置き、テキストファイルの内容が <script type="text/javascript"> function test_js(){ alert("test"); } </script>

  • JavaScriptが実装できない

    初めまして。 Google Maps APIを使ってwebページ上でgoogle mapsを表示させようと思い htmlファイルとjavascriptファイルを実装したのですがうまく動きません。 ソースコードは以下の通りです。 googlemaps.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style type="text/css"> html, body { height: 100%; } </style> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("jquery", "1.5.0"); </script> <script type="text/javascript" src="googlemaps.js"></script> <title>指定した位置を中心とする地図</title> </head> <body> <p> 緯度<input id="lat" type="text" value="35.632997" /> 経度<input id="lng" type="text" value="139.648609" /> <button id="button">地図を作る</button> </p> <div id="map_canvas" style="width: 100%; height: 90%;"></div> </body> </html> googlemaps.js $(document).ready(function() { $("#button").click(function() { // input要素の値を取得し、マップの中心を決める var lat = $("#lat").val(); var lng = $("#lng").val(); var myCenter = new google.maps.LatLng(lat, lng); // 地図のオプション var myOptions = { zoom : 14, center : myCenter, mapTypeId : google.maps.MapTypeId.ROADMAP // 必須 }; // 地図の生成 var myMap = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // マーカーの生成 new google.maps.Marker( { position : myCenter, map : myMap, title : "Hello World!" }); }); }); firebugはgooglemaps.js 404 not foundといっているのでhtmlとjavascriptの連携が うまくいってないのだと思うのですが、どうすればいいのかわからず前にすすめません。 お詳しい方、ご教授ください。

専門家に質問してみよう