お世話になります。
以下の構文が記載されたPHPをhtmlからjavascriptにて呼び出してます。
が、うまく広告が表示されずに困っています。
PHPを直接叩き、document.write等を削除したものを
直接htmlに貼り付ければ、広告は表示されます。
広告が表示されない原因としては、adsenseのscript内でinframeを作成しているのですが
そのさいのwidth,heightが0になってしまっているようです。
しかし、なぜその値が渡せていない?のかが解らずハマっています。
<?php
header("Content-type: application/x-javascript");
echo "document.write(\"<div align='center'>\")\n";
echo "document.write(\"<p>\")\n";
echo "document.write(\"<script type='text/javascript'><!--\")\n";
echo "document.write(\"google_ad_client = 'hogehogeID';\")\n";
echo "document.write(\"/* 200*200 */\")\n";
echo "document.write(\"google_ad_slot = 'slotnumber';\")\n";
echo "document.write(\"google_ad_width = 200;\")\n";
echo "document.write(\"google_ad_height = 200;\")\n";
echo "document.write(\"//-->\")\n";
echo "document.write(\"</script>\")\n";
echo "document.write(\"<script type='text/javascript'\")\n";
echo "document.write(\"src='http://pagead2.googlesyndication.com/pagead/show …
echo "document.write(\"</script>\")\n";
echo "document.write(\"</p>\")\n";
echo "document.write(\"</div>\")\n";
?>
よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
ANo.1です。
>PHPにてechoしているのでphpカテゴリに質問しているだけです。
了解しました。そういうことであれば(私は)以降スルーします。JavaScriptカテで質問して「動作する外部JSファイル」を仕上げるのが先だと思いますので。
>JavaScriptカテで質問して「動作する外部JSファイル」を仕上げるのが先だと思いますので。
その方が早そうですね。
技術カテは広く精通している方が多いので期待しましたが
絞って質問したいと思います。
ありがとうございました。
No.4
- 回答日時:
ANo.1です。
>>PHPを直接叩き、document.write等を削除したものを
>>直接htmlに貼り付ければ、広告は表示されます。
いやいや「document.write等を削除したもの」ってそれは違うでしょう。「外部JSとして」動くソースは確認出来ているんですかと。下記ソース(提示されたソースが返すものです)を外部JSとして読み込んだら動作するのは確認済みですか?
test.js
document.write("<div align='center'>");
document.write("<p>");
document.write("<script type='text/javascript'><!--");
document.write("google_ad_client = 'hogehogeID';");
document.write("/* 200*200 */");
document.write("google_ad_slot = 'slotnumber';");
document.write("google_ad_width = 200;");
document.write("google_ad_height = 200;");
document.write("//-->");
document.write("</script>");
document.write("<script type='text/javascript'");
document.write("src='http://pagead2.googlesyndication.com/pagead/show …
document.write("</script>");
document.write("</p>");
document.write("</div>");
上記内容をtest.jsとして読み込んで動作しないのであれば、静的な外部JSファイルで返そうがphpで動的に生成して返そうが同じです。それは「JavaScriptとしておかしい」のであって、php云々以前の問題です。
この回答への補足
うーん。伝えるのは難しいですね。
>それは「JavaScriptとしておかしい」のであって、php云々以前の問題です。
質問に「PHPをhtmlからjavascriptにて呼び出してます。」と書いてまして
結果的に表示されないという質問なんです。
php云々以前というよりは
私としてみればPHPだろうとJavaScriptだろうとどっちでも良いんです。
htmlに直書きして出る=JavaScriptが悪さをしているのは明白ですし
値が渡せていない=JavaScriptが悪さをしているのは明白です。
PHPでは何も処理していないので。
ただ、手法としてPHPにてechoしているのでphpカテゴリに質問しているだけです。
ありがとうございました。
No.3
- 回答日時:
ANo.1です
>>content-typeをtext/plainにして表示させた内容
>上記内容にしても何も表示されないのです・・・
それは「あり得ない」です。そう変更したphpスクリプトにアクセスしていますか(そういう意味で書きましたが・・)。
そもそも提示された内容が外部jsとして動作することは確認できているのでしょうか?
本来、外部jsとして動作することを確認した上で、それを(何らかの動的に生成した部分があるので)phpスクリプト化するという手順のハズです(∴ 提示されたソースに動的な部分が存在しないのが不思議です)。
この回答への補足
何度もありがとうございます。
>それは「あり得ない」です。そう変更したphpスクリプトにアクセスしていますか(そういう意味で書きましたが・・)。
あっ、PHPファイルに直接アクセスすれば表示されています。
最初の質問にも書いてます。
>>PHPを直接叩き、document.write等を削除したものを
>>直接htmlに貼り付ければ、広告は表示されます。
>そもそも提示された内容が外部jsとして動作することは確認できているのでしょうか?
もともとHTML上に記載していたものをPHPファイルに書き、共通化しようというのが
目的で、HTML上で動作確認しているものを書いています。
ちなみに・・・もともとの実行結果が以下になっています。
<div align="center"><p><script type="text/javascript"><!-- google_ad_client = 'hogehogeID'; /* 200*200 */ google_ad_slot = 'hogeID'; google_ad_width = 200; google_ad_height = 200; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show … style="display:inline-table;border:none;height:nullpx;margin:0;padding:0;position:relative;visibility:visible;width:nullpx"><ins id="aswift_6_anchor" style="display:block;border:none;height:nullpx;margin:0;padding:0;position:relative;visibility:visible;width:nullpx"><iframe allowtransparency="true" hspace="0" marginwidth="0" marginheight="0" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){i+='.call';setTimeout(h,0)}else if(h.match){i+='.nav';w.location.replace(h)}s.log&&s.log.push(i)}" vspace="0" id="aswift_6" name="aswift_6" style="left:0;position:absolute;top:0;" frameborder="0" height="null" scrolling="no" width="null"></iframe></ins></ins></p></div>
↓ここに値が渡ってないと思うんですが・・・
height="null" scrolling="no" width="null
No.2
- 回答日時:
なぜ、単純に文字列を書き出しているだけなのに scho 命令を使用しているのでしょうか。
<?php
header("Content-type: application/x-javascript");
?>
document.write("<div align='center'>");
document.write("<p>");
・・・・・
とするだけでいいと思うのですが。
どうしても echo を使わなければいけない理由があるのであれば、
echo "document.write(\"<div align='center'>\")\n";
を
echo "document.write(\"<div align='center'>\");\n";
と、全ての document.write の閉じ括弧の後ろに ; を付けるようにしてください。
たぶん ; が無いためJavaScriptの実行時に命令文の区切り位置が分からずエラーになっているのだと思われます。
No.1
- 回答日時:
#headerでのContent-typeはtext/javascriptの方が・・・
とりあえず問題を切り分けてください。content-typeをtext/plainにして表示させた内容を(外部jsファイルとして)保存したものを使ってもダメなら、phpの問題ではありません。
というか、JavaScriptでJavaScriptのソースをdocument.writeする(しかもfunctionでなくそのまま動かす)ってどうなんですかねぇ・・・
この回答への補足
ご回答ありがとうございました。
>content-typeをtext/plainにして表示させた内容
上記内容にしても何も表示されないのです・・・
ただ、phpファイルを呼び出したhtmlを表示させて
選択範囲のソース表示を行うと、質問内容にあるような状態が確認できます。
おそらく「http://pagead2.googlesyndication.com/pagead/show …」に
IDやサイズを渡しているんだと思うのですが
これがうまく渡っていないんですよね。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- JavaScript JAVASCRIPT 1 2022/04/13 09:40
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
変数の受け渡しによる画像の表示
-
PHP一覧表示した項目にリンクを...
-
小数点以下0の非表示
-
PHPでのパスワード制限のセキュ...
-
batファイルでPC名称の変更
-
findstrのerrorlevel
-
三項演算子/echoとprintの違い
-
環境変数「%USERPROFILE%」の内...
-
$_SERVER["REQUEST_METHOD"]に...
-
バッチファイルで、全てのウィ...
-
オブジェクトの中身の判定(PHP)
-
PHPとCSSを使用して九九...
-
RSSにdiv,ul classを付けたいの...
-
DBのハッシュ化したパスワード...
-
syntax error, unexpected 'ech...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
phpでcookieがうまく保存されない
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
syntax error, unexpected 'ech...
-
findstrのerrorlevel
-
バッチファイルで、全てのウィ...
-
PHPで訪問回数を表示するカウン...
-
PHP一覧表示した項目にリンクを...
-
DBのハッシュ化したパスワード...
-
小数点以下0の非表示
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
PHPでのパスワード制限のセキュ...
-
RSSにdiv,ul classを付けたいの...
-
pdftkを使った処理をバッチファ...
-
ゼロとNULLを区別して number_f...
-
コマンドプロンプト フォルダ内...
おすすめ情報