人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Prototype windowのサンプルAjax Dialogを利用してHTMLを表示することはできましたが、表示されたHTMLの中にJavaScriptを記述しても読み込むことができません。読み込みをする方法をご教示頂けないでしょうか?
JavaScriptはアドセンス広告となりますので、スクリプトを修正することはできません。

その部分を考慮にいれて、お知恵をお貸しください。

●質問者: funzuketeyaru
●カテゴリ:インターネット ウェブ制作
✍キーワード:Ajax HTML JavaScript Prototype アドセンス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● susie-t
●35ポイント

Prototype windowの詳しいことは分からないのですが、もしかしたら以下が参考になるかもしれません。

http://q.hatena.ne.jp/1157010937

http://d.hatena.ne.jp/Mug/searchdiary?word=%2a%5b937%5d

見当違いでしたらすみません。

◎質問者からの返答

上記のサイトはすでに試みましたが、結果は表示してくれませんでした。


2 ● susie-t
●35ポイント

以下でいちおう動作しました。

http://www.openspc2.org/JavaScript/Ajax/ref/PrototypeWindowClass...

のサンプルに

http://www2.u-netsurf.ne.jp/~mug/utility/souvenir/ScriptNodeWrit...

を適用したものです。

[test.htm]utf-8
?<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Sample</title>
<link rel="stylesheet" href="default.css" type="text/css" media="all">
<script type="text/javascript" src="./ScriptLoader.js" charset="Shift_JIS"></script>
<script type="text/javascript" src="./WritingLoader.js" charset="Shift_JIS"></script>
<script type="text/javascript" src="./ScriptNodeWriter.js" charset="Shift_JIS"></script>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="effects.js"></script>
<script type="text/javascript" src="window.js"></script>
<script type="text/javascript"><!--
Window.prototype._setAjaxContent = function(originalRequest) {
 //Element.update(this.getContent(), originalRequest.responseText);
 var obj = new ScriptNodeWriter($(this.getContent()));
 obj.write(originalRequest.responseText);

 if (this.onComplete)
 this.onComplete(originalRequest);
 this.onComplete = null;
 this[this.showFunction](this.showModal)
};
var win;
window.onload = function(){
win = new Window("win01", {
title: "Sample", className: "dialog",
top:130, left:10, width:320, height:240,
zIndex: 100, resizable: true, draggable:true
});
win.setDestroyOnClose();
win.show();
}
function loadText(){
win.setAjaxContent("sample.txt", { onComplete:dispData }, false, false);
}
function dispData(httpObj){
$("result").innerHTML = "読み込み完了";
}

// --></script>
</head>
<body>
<h1>サーバーデータを読み込み表示する</h1>
<form>
<input type="button" value="読み込み" onClick="loadText()">
</form>
<div id="result"></div>
</body>
</html>
----------------------------------------------
[sample.txt]utf-8
scriptより<b>前</b>の部分
<script src="./sample.js" charset="Shift_JIS" type="text/javascript"></script>
scriptの間の部分
<script src="./sample.js" charset="Shift_JIS" type="text/javascript"></script>
scriptより<b>後ろ</b>の部分
----------------------------------------------
[sample.js]shift-jis
// document.writeする
var str = '<div style="background-color:orange;">外部JSファイルによって作成されたHTML要素です。</div>';
document.write(str);

// ステータスバーでのチェック用
status += " Load!";

他のjsやcss等のソースは適宜取得・配置してください。

Windowクラスの_setAjaxContentメソッドをオーバーライドしています。Element.update処理の上記サイトのものへの変更です。

すみませんが、上記二つの併用および改造による他への影響は不明です。また、ご希望のソースで動くか分かりませんが、参考になれば幸いです。

◎質問者からの返答

返信が遅くなりなりました。

上記の方法で試みてみます。知識不足で時間がかかるかもしれませんが、やっています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ