Bookemarkletを作っています(質問その2)

外部のJavaScriptのファイル中にある関数を呼び出したいのですが、何らかの方法で可能でしょうか?

↓イメージ
<a href="javascript:[ここで呼出す]">

回答の条件
  • 1人3回まで
  • 登録:2006/04/15 02:08:52
  • 終了:2006/04/16 12:22:34

ベストアンサー

id:erupi No.2

erupi回答回数7ベストアンサー獲得回数22006/04/15 11:23:01

ポイント35pt

http://ma.la/mirrorman/wiki.cgi/%E3%82%B9%E3%82%AF%E3%83%AA%...

大雑把に言うと、技術的には、

<a href="javascript:document.write('<script type=\"text/javascript\" src=\"gaibu.js\">');/*スクリプトがロードされるまで待つ*/;hoge();">

で、出来そうです。document.write()ではなくて、document.body.appendChild()でも良いようです。

>http から 他ドメイン

>他ドメイン、あるいはhttp://localhostも同様。

>IEの場合:読み込める。

>firefoxの場合:読み込める。

>Operaの場合:読み込める。

とあるので、現在メジャーなブラウザであれば可能なようです。

具体例としては、同じサイトにある、

http://la.ma.la/misc/js/jsan.html

のuse関数とwait関数を用いて、

<a href="javascript:use('gaibu');wait('gaibu',hoge());">

こんな感じでいけるかと思います。

#実際に検証はしていません。ご了承下さい。

id:katsube

なるほど!

ロードを待つ処理を入れる必要がありましたか(^^; うまくいかないワケです。

document.body.appendChild()など、一通り試してみたいと思います。有用な情報ありがとうございました!

2006/04/15 11:33:53

その他の回答(2件)

id:Kenju No.1

Kenju回答回数30ベストアンサー獲得回数22006/04/15 09:22:41

ポイント5pt

<script type="text/javascript" src="gaibu.js"></script>

上のタグを貼って中の関数を呼べばできます。

<a href="javascript:hoge();">

id:erupi No.2

erupi回答回数7ベストアンサー獲得回数22006/04/15 11:23:01ここでベストアンサー

ポイント35pt

http://ma.la/mirrorman/wiki.cgi/%E3%82%B9%E3%82%AF%E3%83%AA%...

大雑把に言うと、技術的には、

<a href="javascript:document.write('<script type=\"text/javascript\" src=\"gaibu.js\">');/*スクリプトがロードされるまで待つ*/;hoge();">

で、出来そうです。document.write()ではなくて、document.body.appendChild()でも良いようです。

>http から 他ドメイン

>他ドメイン、あるいはhttp://localhostも同様。

>IEの場合:読み込める。

>firefoxの場合:読み込める。

>Operaの場合:読み込める。

とあるので、現在メジャーなブラウザであれば可能なようです。

具体例としては、同じサイトにある、

http://la.ma.la/misc/js/jsan.html

のuse関数とwait関数を用いて、

<a href="javascript:use('gaibu');wait('gaibu',hoge());">

こんな感じでいけるかと思います。

#実際に検証はしていません。ご了承下さい。

id:katsube

なるほど!

ロードを待つ処理を入れる必要がありましたか(^^; うまくいかないワケです。

document.body.appendChild()など、一通り試してみたいと思います。有用な情報ありがとうございました!

2006/04/15 11:33:53
id:nyarla-net No.3

にゃるら回答回数35ベストアンサー獲得回数22006/04/16 10:40:30

ポイント40pt

他の方の回答と重複しそうですが、

/*Bookmarklet*/
javascript:(function(){
	var s=document.createElement('script');
	s.type='text/javascript';
	s.src='http://localhost/bookmarklet.js'; // 外部jsのアドレス
	document.body.appendChild(s);
})();

で外部のjsファイルを呼び出す事ができます。

ただし、読み込まれてすぐに外部jsの関数を実行できるわけではないので、

http://la.ma.la/misc/js/jsan.htmlあたりを参考にして何とかしなけりゃなりませんが。


あとBookmarkletはブラウザによって文字制限があったりするので、

上記スクリプトを使って「外部jsを呼び出し→実行」をすると文字制限を回避でき

スマートになるかとおもいます:-)


外部jsを呼び出し、そのまま実行するには、

function hoge() {
	alert("hoge");
}
hoge();

見たいにしなきゃいけませんが。

なんか要領を得ない回答ですみません。

id:katsube

わかりやすい解答ありがとうございました!

2006/04/16 12:21:23

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

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

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

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

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