-PR-
解決済み

javascriptでwriteできない

  • すぐに回答を!
  • 質問No.9362246
  • 閲覧数172
  • ありがとう数6
  • 気になる数1
  • 回答数7
  • コメント数0

お礼率 63% (7/11)

カレンダーを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にアカウント作成して使用するようになってから発生しております。
環境回りも確認しているのですが、それと思われるものも見つけられません。

お教え頂けますと幸いです。
よろしくお願いいたします。
通報する
  • 回答数7
  • 気になる1
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル12

ベストアンサー率 59% (172/289)

JavaScript カテゴリマスター
>>別のファイルで処理している可能性があります。

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

逆に他のファイルから そのファイルが参照されている可能性もあります。
そのファイルの拡張子が「js」になってませんか?
補足コメント
cra23mog

お礼率 63% (7/11)

ファイル名は「ifrmCalendar.js」です。
内部参照のような形式なのかと思いますが、よく分かりません・・・。
投稿日時 - 2017-08-14 19:29:27
お礼コメント
cra23mog

お礼率 63% (7/11)

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

その他の回答 (全6件)

  • 回答No.2
レベル12

ベストアンサー率 59% (172/289)

JavaScript カテゴリマスター
>idoc = target.contentDocument;

↑良く分かりませんが、「target」変数に何か代入されてますか?
補足コメント
cra23mog

お礼率 63% (7/11)

再確認したのですが、上記以外の処理はしていないようです。
どうしたものか、頭を抱えております・・・。
投稿日時 - 2017-08-13 14:19:14
お礼コメント
cra23mog

お礼率 63% (7/11)

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


  • 回答No.1
レベル12

ベストアンサー率 59% (172/289)

JavaScript カテゴリマスター
>idocに書き込みしようとした際に、linkとbodyが書き込めず

通常「write」メソッドは「document」オブジェクトの「write」メソッドを使うものですが?

document.write(~);
補足コメント
cra23mog

お礼率 63% (7/11)

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に詳しくなく、この書き方が妥当なのかが判別出来ず、引き継いだものがそうなっていたとしけ言えない状況です。
よろしくお願いいたします。
投稿日時 - 2017-08-12 19:37:19
お礼コメント
cra23mog

お礼率 63% (7/11)

ご回答ありがとうございます。
補足コメントにもう少しPGを書きました。
知見をお借りできますと幸いです。
投稿日時 - 2017-08-12 19:44:30
  • 回答No.3
レベル12

ベストアンサー率 59% (172/289)

JavaScript カテゴリマスター
>再確認したのですが、上記以外の処理はしていないようです。
>どうしたものか、頭を抱えております・・・。

別のファイルで処理している可能性があります。
ファイルの先頭の方で下記のような感じで別ファイルを参照してないかチェックしてみて下さい。

<script language=JavaScript type=Text/JavaScript src="ファイル名"></script>
お礼コメント
cra23mog

お礼率 63% (7/11)

残念ながら、そういった処理は行われていないようです。
投稿日時 - 2017-08-14 16:39:51
  • 回答No.4
レベル12

ベストアンサー率 67% (346/515)

コンピューター カテゴリマスター
cal 変数の代入文中に、 </script> という文字列が2箇所ありますが
これを このJavaScriptの終端と誤認識してしまっているのかもしれません。

</script>

</s" + "cript
のように分解してみてはどうでしょう?
お礼コメント
cra23mog

お礼率 63% (7/11)

残念ながら、影響なしでした。
投稿日時 - 2017-08-14 16:40:09
  • 回答No.6
レベル12

ベストアンサー率 59% (172/289)

JavaScript カテゴリマスター
>ファイル名は「ifrmCalendar.js」です。

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

ベストアンサー率 67% (346/515)

コンピューター カテゴリマスター
>>idoc = target.contentDocument;
>↑良く分かりませんが、「target」変数に何か代入されてますか?

target変数への代入を探されているようですが、No2に補足に
var target = parent.document.getElementById( id );
..
idoc = target.contentDocument;
とあるので、これのことですよね。

前後が不明ですが、document.writeでなくオブジェクトの.writeを使っているということは
親ウィンドウから、iframeの子ウィンドウのコンテンツを触っているのでしょう。

本題の、linkやbodyができない件ですが、
ブラウザのJavaScriptのデバッガを使って、どこで止まっているか確認してみては
どうですかね。
お礼コメント
cra23mog

お礼率 63% (7/11)

デバッガでは、直前まで変数calにlinkもbodyも保持していますが、writeすると消失してしまいます。
投稿日時 - 2017-08-15 13:40:31
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ