トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     javascriptの呼び出しについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
chibo
Åê¹ÆNo.5192
投稿日時: 2004-3-18 20:17
新米
居住地: 弦巻
投稿: 7
使用環境:
10.3.9 Pro 8.0
SP1 Pro 8.0
javascriptの呼び出しについて
はじめまして。

以下のような、裏側にあるウィンドウを制御するjavascriptをフラッシュから呼びだして動作させたいと思っています。

function winb(aaa){
if(win_closed(window.opener)){
win = window.open(aaa,'test','menubar=yes,scrollbars=yes,resizable=yes,location=yes,directories=yes,toolbar=yes,status=yes,width=755,height=500');

実際のソースはもう少し長いのですが、この命令を呼びだすのに、ボタンシンボルに以下のようなスクリプトを書きました。

on (release) {
getURL("java script:winb('http://www.test.co.jp')");
}

ですが動作しません。
javascriptを上記のように"aaa"のような引数を設定しないで、

function winb1(){
window.opener.location.href="http://www.test.co.jp";
}

のように書いて、この"winb1"を呼びだすと動作します。
しかしこれだとjavascriptの記述が膨大になってしまうので、
できれば上の引数を利用したものを使いたいと思っています。

どうやって呼び出したら動作するのでしょうか?
どうぞ宜しくお願いします。
ゲスト
Åê¹ÆNo.5194
投稿日時: 2004-3-18 21:39
Re: javascriptの呼び出しについて
こんにちは。

win_closed()関数がどんな処理をするのか分からないのでif文を削除して、同じ状況をIE5.2, Safari v1.2で実行しましたが、動作しました。

省略された部分にエラーがある可能性はありませんか?
あとは、ダブルクオーテーションをエスケープしてみることぐらいしか思いつきません。
引用:
実際のソースはもう少し長いのですが、この命令を呼びだすのに、ボタンシンボルに以下のようなスクリプトを書きました。

試しにdocument.write()で引数を出力してみてください。URIがきちんと表示されるのならFlashの問題ではありません。
chibo
Åê¹ÆNo.5197
投稿日時: 2004-3-18 22:50
新米
居住地: 弦巻
投稿: 7
使用環境:
10.3.9 Pro 8.0
SP1 Pro 8.0
Re: javascriptの呼び出しについて
マツダさん、ありがとうございます。
私もIEの同バージョンで、flashMXです。

ダブルクォーテーションを取ってみたりもしたのですが、やっぱり動作しませんでした。
document.write()では、URLは表示されません。
というか、
「このプログラムは、java%20:winb('http://www.google.com/intl/ja/')");をアクセスするためのプロトコルをサポートしていません」
というエラーがでました。
以下が実際のjavaのソースです。
htmlで呼び出す際には問題なく動作してるので、
javaにはミスはないと思っているのですが。。

function winb(aaa){
if(win_closed(window.opener)){
win = window.open(aaa,'test','menubar=yes,scrollbars=yes,resizable=yes,location=yes,directories=yes,toolbar=yes,status=yes,width=755,height=500');
win.focus();
}else if(window.opener != null || window.opener !=""){
window.opener.location.href=aaa;
window.opener.focus();
}else{
win = window.open(aaa,'test','menubar=yes,scrollbars=yes,resizable=yes,location=yes,directories=yes,toolbar=yes,status=yes,width=755,height=500');
win.focus();
}
}

長くなってすいません。
もしミスの部分がおわかりでしたら宜しくお願いします。
ゲスト
Åê¹ÆNo.5202
投稿日時: 2004-3-18 23:43
Re: javascriptの呼び出しについて
ちょっと待ってください、「java%20」となるのはJavaScript疑似プロトコルの間にスペースが入っていたからでは無いでしょうか。
再度document.write()で「引数を」適切に出力してみてください。
引用:
というか、
「このプログラムは、java%20:winb('http://www.google.com/intl/ja/')");をアクセスするためのプロトコルをサポートしていません」
というエラーがでました。

ところでwin_closed()関数ってchiboさんが作られた関数ですよね、何を評価しているのでしょう?そこでエラーが起これば、処理は止まります。
コマツ
Åê¹ÆNo.5207
投稿日時: 2004-3-19 0:07
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: javascriptの呼び出しについて
こんばんは。

問題の切り分けをした方がよいと思うのですが・・。
chiboさんは、JavaScriptの呼び出しができないことを問題に
しているのでしょうか?
それとも、現在そのJavaScriptソースのどこがまずいのか、でしょうか?

まず、引数を使用した呼び出しはできましたか?
できていないのであれば、それをできるかどうか試してみては
いかがでしょう?
簡単なソースであれば、chiboさんが書いているやり方で、動く
ものだと予想します。

if(win_closed(window.opener)){


この部分で関数を呼び出し、データを受け取って、条件文
(if文)で判断しますので、この関数がない私たちでは、
確認することができません。

function win_closed(test){
return true;
}


簡単な「true」だけが帰ってくる関数をつけたところ、
ちゃんと、引数を受け取って、確認することができました。

とりあえず、一度このif分等を取り除いて、シンプルな形で
引数を受け取るかどうか判断されて、その後、ソースを複雑に
してみてはいかがでしょう?
そこからは、Flashではなく、マツダさんの言うように、
JavaScriptのシンタックスのエラーだと判断できるものだと思いますよ。
chibo
Åê¹ÆNo.5239
投稿日時: 2004-3-19 15:05
新米
居住地: 弦巻
投稿: 7
使用環境:
10.3.9 Pro 8.0
SP1 Pro 8.0
Re: javascriptの呼び出しについて
マツダさん、コマツさん、ありがとうございます。

確かに、javascriptが得意ではないので質問があいまいになってしまいました。それにjavascriptの質問はここではないですよね。
ごめんなさい。

で、お二人のアドバイスをもとに検証したところ、解決しました。問題は以下の2点でした。

1.マツダさんが教えてくださった通り、フラッシュのコマンドにスペースが入っていました。

2.function win_closedを定義する部分に記述ミスがありました。

スクリプトは苦手で半分あきらめかけていたので、動作したときはとても感激しました。
本当にありがとうございました
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops