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

JavaScriptはアドセンス広告となりますので、スクリプトを修正することはできません。

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

回答の条件
  • 1人5回まで
  • 登録:2007/01/31 13:43:08
  • 終了:2007/02/07 13:45:18

回答(2件)

id:susie-t No.1

susie-t回答回数99ベストアンサー獲得回数182007/02/01 13:03:57

ポイント35pt

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

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

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

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

id:funzuketeyaru

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

2007/02/01 19:07:02
id:susie-t No.2

susie-t回答回数99ベストアンサー獲得回数182007/02/03 01:49:39

ポイント35pt

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

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処理の上記サイトのものへの変更です。

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

id:funzuketeyaru

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

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

2007/02/07 09:36:25

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません