プロが教える店舗&オフィスのセキュリティ対策術

ブログ上に、複数のjavaスクリプトからランダムに2つのjavaスクリプトを選んで表示させたいのですが、コードがわからないので教えていただきたいです。選ばれた二つは被らないようにしたいです。

使用したいjavaスクリプトのコードは
<script type="text/javascript" charset="euc-jp"
src="○○1"></script>
<script type="text/javascript" charset="euc-jp"
src="○○2"></script>
<script type="text/javascript" charset="euc-jp"
src="○○3"></script>
のようになっています。

javaを使って画像や文字をランダムに表示する方法はあったので応用しようとしたのですがうまくいきませんでした。

よろしくお願いします。

A 回答 (5件)

No.1です。


http://meshiuma.net/​の中段右のアンケートの部分を
見ると、外部scriptのソースをphpでdocument.write文を動的に
出力してますね。しかもおきて破りの方法ですね、<script>要素や<css>
要素までdocument.writeしてます。
さらに致命的なのはdocument.closeの出力がありません。
phpをコールする時idパラメータを変えれば異なるアンケート書き出しの
ソースを履くみたいです。
アンケートをランダムに選ぶ処理は、おいといて、
そもそも複数のアンケートを表示できるのか試してみました。
結果、firefoxだと表示はしますが、document.close()が無いので
ロードが完了せず、次の処理に進みません。IEではまったくだめです。
自身のサーバー側でproxyとなる別の処理を作って、加工して返せば、なんとかなるかも?

(試したソース)
<html>
<head>
<script type="text/javascript">
function changeSRC(){
var url1='http://blog.with2.net/vote/form.php?sid=694531&i …
var url2='http://blog.with2.net/vote/form.php?sid=694531&i …
var url3='http://blog.with2.net/vote/form.php?sid=694531&i …
var objhead1 = document.getElementById("ancate1");
var objhead2 = document.getElementById("ancate2");
var objhead3 = document.getElementById("ancate3");
var script1 = document.createElement("script");
script1.setAttribute("src",url1);
var script2 = document.createElement("script");
script2.setAttribute("src",url2);
var script3 = document.createElement("script");
script3.setAttribute("src",url3);
objhead1.appendChild(script1);
objhead2.appendChild(script2);
objhead3.appendChild(script3);
}
</script>
</head>
<body>
<input type="button" onclick="changeSRC();">
<div id="ancate1"></div>
<div id="ancate2"></div>
<div id="ancate3"></div>
</body>
</html>
    • good
    • 0
この回答へのお礼

簡単にできるものなのかなと思っていたのですが、かなり難しいようですね・・・。いろいろと調べてくれてありがとうございました。

お礼日時:2009/10/19 21:35

そういえば、丸投げがっ!


http://faq.okwave.jp/EokpControl?&tid=950130&eve …

がんがん、書きましょう^^;
    • good
    • 0

#2です



>説明ではなく具体的なコードを書いてください
表示に使っているものが不明なのでコピペのコードを書くことは無理でしょ。
それに、丸投げは禁止では?

どんなものを生成しているか不明なので、要素を生成しないで表示の制御だけでなんとかする方法の簡単なサンプルとして、指定数(2個)だけ表示する例を…
<html>
<head>
<style type="text/css">
.formwrap {
width:240px; margin-bottom:8px; padding:10px 10px 3px;
border:1px solid grey; background-color:ivory;
}
.formwrap input { margin-left:16px; }
</style>

<script type="text/javascript">
window.onload = function() {
var t, i = -1, e = [], n = 2; //n:表示する数
t = document.getElementsByTagName('DIV');
while (t[++i]) if (t[i].className=='formwrap') e.push(t[i]);
i = e.length, n = i<n?i:n;
while (i > n) {
t = Math.floor(Math.random() * e.length);
if (e[t].style.display != 'none') e[t].style.display = 'none', i--;
}
}
</script>
</head>

<body>
<div class="formwrap"><form action="" method="">
・めし食った?<br>
<input type="radio" name="eat">食った<br>
<input type="radio" name="eat">まだ~<br>
<input type="submit" value="回答する"
</form></div>

<div class="formwrap"><form action="" method="">
・結婚してちょ!<br>
<input type="radio" name="wipe">あかんべ!<br>
<input type="radio" name="wipe">おとといおいで<br>
<input type="submit" value="回答する"
</form></div>

<div class="formwrap"><form action="" method="">
・100万円くれる?<br>
<input type="radio" name="wipe">よろこんで<br>
<input type="radio" name="wipe">持ってけどろぼう<br>
<input type="submit" value="回答する"
</form></div>
</body>
</html>

*表示することよりも、formを送った後の集計処理はできているのだろうか?
    • good
    • 0

こんにちは。



>2つのjavaスクリプトを選んで表示させたいのですが~~
多分、質問者様が実行しようとしているスクリプトは、何かを表示するスクリプトなのかも知れま
せんが…
スクリプトって処理を実行するものなので、必ずしも「表示」するものとは限りません。
(スクリプトのコード自体を表示したいという意味ならともかく、「スクリプトを表示」ということの真意が不明です)

勝手に想像するところ、そのスクリプトファイルはdocument.write~~みたいなのが書いてあって、<script>~~</script>をHTML内に記入してダイレクトに実行するタイプなのではないかと思いますが、もしそうであるならば…

document.write~~などで書き込む内容を「内容1」、「内容2」、「内容3」とすれば、それらの中から2個をランダムに選択して記入する「1つの」スクリプトにして、HTML内の表記はそのスクリプトを呼び出すようにすればよろしいかと。

どうしても、HTML自体を生成したいのであれば、No1様が御回答されているような方法もありますが、私も必要性がわかりません。
    • good
    • 0
この回答へのお礼

はい、表示するスクリプトです!
具体的な例を示すとhttp://meshiuma.net/の中段右にあるような
アンケートを、ページを読み込むたびに変えたいのです(2つ)。

なにぶん素人なもので、説明ではなく具体的なコードを書いてください(コピペで表示できるよう)。

お礼日時:2009/10/15 12:24

スクリプトファイルの名前をランダムに選んで、<script>要素を生成し、


<head>要素に追加するjavascriptは作れますが、本当に必要ですか?
目的がさっぱりわかりませんが、おそらく、あなたが思っているような事は
その方法では実現できないとおもいます。目的がわからないのに出来ない
と断言するのは、ある意味矛盾してますが....
 もう少し、javascriptを勉強してから再考なさってはいかがかなものかと。
    • good
    • 0
この回答へのお礼

はい、表示するスクリプトです!
具体的な例を示すとhttp://meshiuma.net/の中段右にあるような
アンケートを、ページを読み込むたびに変えたいのです(2つ)。

なにぶん素人なもので、説明ではなく具体的なコードを書いてください(コピペで表示できるよう)。

お礼日時:2009/10/15 12:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!