質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

2回答

1845閲覧

ajaxで呼び出したJavascript広告が表示されない

hamst

総合スコア14

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2018/10/24 08:13

編集2018/10/25 12:26

DB負荷軽減のためコンテンツをキャッシュとしてテキストファイルに保存し、
アクセスがあればキャッシュを読み込んで表示しようとしているのですが
広告の表示がうまくいきません。

キャッシュとしてadstirやadrouteといった広告タグ(Javascript)もコンテンツと一緒に保存するのですが、
ajaxでコンテンツを呼び出すと広告が表示されないので困っています。

調べてみると、ajaxでの呼び出しはDOMに組み込まれないからということらしいですが、
どうにか上手いこと表示する方法はないでしょうか。

広告を呼び出すことは出来ているのですが、描画が出来ません。

動作しない広告コード(Adstir)は下記です。

javascript

1<script type="text/javascript"> 2var adstir_vars = { 3 ver: "4.0", 4 app_id: "MEDIA-79254f62", 5 ad_spot: 1, 6 center: false 7}; 8</script> 9<script type="text/javascript" src="https://js.ad-stir.com/js/adstir.js"></script>

上記広告を呼び出しているajaxの記述は下記です。

javascript

1<script> 2$(document).ready( function(){ 3 $.ajax({ 4 type: 'post', 5 url:'/get.php', 6 data:{ 7 device:'{$device}', 8 kijiCode:'{$kijiCode}' 9 }, 10 success: function(data){ 11 document.getElementById('{$targetId}').innerHTML=data; 12 } 13 }); 14}); 15</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

colling

2018/10/24 14:32

動かすというのは、広告の表示場所のことでしょうか?それとも広告の機能的なことでしょうか?
hamst

2018/10/24 14:32

広告の機能という意味でした。
退会済みユーザー

退会済みユーザー

2018/10/24 14:40

文章だけだと何も回答は得られませんよ。試したコードを掲載してください。
colling

2018/10/25 07:43

動かないのが広告だけなのか、他のスクリプトもなのか?や、ajaxでテキストファイルを呼び出したあと、どのように描画しているのかが不明なので現状の質問内容では回答がつかないと思われます。困っていることと、助けてほしいということしかわからないので、もう少し詳しく質問内容を追記するのが良いかと思います。
guest

回答2

0

HTML5 - 4.11.1 The script element

Note: When inserted using the document.write() method, script elements execute (typically synchronously), but when inserted using innerHTML and outerHTML attributes, they do not execute at all.

とあるように、innerHTMLで追加したスクリプトは実行されません。

jQueryをお使いでしたら、html()を使うことにより、追加したスクリプトを実行できます。

JavaScript

1success: function(data){ 2 $('#{$targetId}').html(data) 3}

投稿2018/11/06 23:29

編集2018/11/07 09:27
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/11/07 00:42

innerHTMLはメソッドではありませんよ
退会済みユーザー

退会済みユーザー

2018/11/07 09:27

ご指摘ありがとうございます。回答を修正しました。
guest

0

求めている回答ではないかもしれませんが、
キャッシュ部分がget.phpですので、phpが使える方と想定しての代案です。
コンテンツを書き出す前にキャッシュを拾ってはいかがでしょうか?

php

1<?php 2function get_cache(){ 3 4 $url = 'httpから始まるurl/get.php'; 5 // POSTデータ 6 $data = array( 7 "device" => "でばいす", 8 "kijiCode" => "こーど" 9 ); 10 $data = http_build_query($data, "", "&"); 11 // header 12 $header = array( 13 "Content-Type: application/x-www-form-urlencoded", 14 "Content-Length: ".strlen($data) 15 ); 16 $context = array( 17 "http" => array( 18 "method" => "POST", 19 "header" => implode("\r\n", $header), 20 "content" => $data 21 ) 22 ); 23 $html = file_get_contents($url, false, stream_context_create($context)); 24 return $html; 25 } 26$html = get_cache(); 27if($html!=''){//get.phpからの返答が空以外 28 echo $html; 29}else{//get.phpからの返答が空の場合 30 //キャッシュがなければdbから拾ってページを書き出す処理 31 //または include_once('new.php'); などで同機能を持ったプログラムを呼び出し 32} 33?>

もしくは、get.phpに直接、キャッシュがない場合にDBから拾って表示する部分を付け加えるのがスマートかもしれません。

jqueryajaxの利用が必須条件であるならば、過去の回答にヒントがあるかもしれません。(未検証です。)
過去の回答

投稿2018/10/26 04:31

編集2018/10/26 04:50
colling

総合スコア798

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問