電子書籍の厳選無料作品が豊富!

自作のJavaScriptを既存のページで動作させる

自作のjavascriptをウェブ上で公開されているページに含めて動作させることを考えています。javascriptの動作は、ページ内の画像などをクリックするとalert関数が出るようなものです。

自分で少し考えたものとしては、自作のHTMLページでjavascriptを読み込んでおき、そのHTMLの中で外部のHTMLページを読み込むようなことはできないかなと考えています。
外部ページの読み込みはフォームの中にURLを入力して行えるといいかなと思います。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>

<!--このjavascriptを読み込んだページで動作させる-->
<script type="text/javascript">
var Handler = function (evt) {
var node = evt./*@if (1) srcElement @else@*/ target /*@end@*/;
var doc = node.ownerDocument;
var win = doc./*@if (1) parentWindow @else@*/ defaultView /*@end@*/;
if(node.tagName=="IMG"){ //imgタグを検知したらアラート
alert("これは画像です");
}
</script>

</head>
<body>

<!--外部のページを読み込む処理-->
<form id="f1">
<input type="text" name="url" value="http://" size="60" />
<input type="button" value="読み込み" />
</form>

</body>
<script src="自作のjavascript" type="text/javascript" ></script>
</html>

自作のjavascriptをWeb上のページで動作できれば、上記のような方法と全く別でも構いませんので、どなたかご存知の方よろしくお願いいたします。

ブラウザはInternetExplorerを考えています。

A 回答 (4件)

> 自作のjavascriptをWeb上のページで動作できれば、上記のような方法と全く別でも構いませんので、


ブックマークレットにすれば、IE でも実行できるとは思います。

あと、IE だけをサポートするなら条件付きコンパイルをする必要はない…ような。
if (1) なら、IE は絶対に else 後の Statement にいきません。

この回答への補足

後学のため・・・
以下のコードをブックマークのURLに書いて登録
javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="サーバに置いた自作のjavascriptへの絶対パス";document.body.appendChild(s)})();
      ↓
自作のjavascriptを適用したいページで登録したブックマークをクリック。
      ↓
そのページで自作のjavascriptが適用される。

補足日時:2010/11/04 15:26
    • good
    • 1
この回答へのお礼

お礼が遅くなってしまって申し訳ありません。
質問していた内容に追加の機能を加えたjavascriptを考えていました。
ブックマークレットのこと、教えて頂きありがとうございます。
無事作成することができました。
外部サーバにjavascriptを置いてアクセスさせる方法にしました。

あとはページ遷移の度にブックマークを押さなければならないのを改善できたらと考えています。(ブックマークレットで出来るかはまだわからないですが・・・)

本当に助かりました。
ありがとうございます。

ご指摘の条件付きコンパイルの部分ですが、たしかにelse以下は要りませんでしたね。
重ねて、ありがとうございます。

お礼日時:2010/11/04 15:23

>自作のJavaScriptを既存のページで動作させる


とのことですが、すでにご提示のスクリプトは別ドキュメントでも動作するように意図なさっているとお見受けしますので(そこまで考慮したコーディングは私には無理)、そのまま対象ドキュメント(または要素)に適用すればいいだけではないのですか?
iframeを用いるのかajaxで読込むのか不明ですが、対象要素にイベントハンドラーとして設定するだけ。(クロスドメイン対応はサーバ側で行っているのでしょうか?)

No3様がすでにご提案なさっているように、ブックマークレットにしてしまう案は簡便でよさそうですね。
同様に、IE限定というのであれば、わざわざ条件付コンパイルにする必要もなさそう。
よく見ると、ご提示の条件付コンパイル部分が(失礼ながら)不完全なようにも見えますが、はずしてしまうのなら関係ないですね。
    • good
    • 0
この回答へのお礼

お礼がおそくなってしまい申し訳ありません。

No.3様のところで書かせていただいたように、ブックマークレットという形で実現できました。
回答ありがとうございました。

お礼日時:2010/11/04 15:29

補足


「InternetExplorer」じゃありませんが「火狐」というブラウザーには、
「潤滑油猿」というアドオンソフトがあって、これを使えば、ブラウザーに
ロードしたページに、あなたの追加 javascript を実行させる事が出来ます。
フォームなんていりません。

http://mozilla.jp/firefox/
http://firefox.geckodev.org/index.php?Greasemonk …

この回答への補足

回答ありがとうございます。

「火狐」で「潤滑油猿」( 当て字(笑) )使って上手く動作しました。
しかし、今回の機能だけだと良かったのですが、自作javascriptではActiveXをオブジェクトとしてhtmlページに埋め込ませて使う予定のため、残念ながら「火狐」だと都合が悪いです。(質問に書いてなくて申し訳ありません。)
IEで「潤滑油猿」が使えるとよかったんですが・・・。

やはりNo.1で回答頂いてましたようにPHPを使ってやるしかないのですかね。
PHPはほとんどやったことがないので、これから勉強したいと思います。

補足日時:2010/10/19 17:19
    • good
    • 0
この回答へのお礼

補足にお礼していて申し訳ありませんでした。

回答ありがとうございました。

お礼日時:2011/06/23 15:52

javascriptで他のサイトのページを読み込むことは出来ません


PHPでやりましょう。
    • good
    • 0

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