- PR -

Scriptタグの要素を取得したい

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2009-04-10 13:11
こんにちは。

このようにHTMLにScriptタグを埋めて、サーバ側のScriptで指定されたパラメータを取得したいのですが、FireFox3.1のみ正常に取得できません。
<script type="text/javascript" src="http://test.com/script.js" charset="utf-8" param1="#eeeeee"></script>

○http://test.com/script.js
var params =
(function(e){return e.nodeName.toLowerCase() == 'script' ?
e : arguments.callee(e.lastChild)})(document);
var firstParam = params.getAttribute("param1");

↑このようにこのScriptファイルのonload時に、この処理が必ず行われ、パラメータ値を取得しています。
「function(e)」のe(event)がnullの為、取得エラーになってるのですが、FireFoxではどのようにEventを発生させるのでしょうか?

お分かりになりましたら、よろしくお願いします。

mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-04-10 13:33
src="http://test.com/script.js?param1=#eeeeee"ではだめな理由はなんでしょう。
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2009-04-10 15:09
ありがとうございます。

お分かりかも知れませんが、こちらブログパーツでして、ユーザに任意に指定してもらえるように、なるべく分かりやすくとタグ内で独立してパラメータを記述するようにしています。

どうも、fireFoxはfireBugのアドオンが邪魔しているようでした・・。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-04-10 16:18
手元で試してみたところ、Operaでも出ませんね。
param1という属性自体が、削られてしまうようでした。

<script〜>param1=#eeeeee</script>

としてinnerHTMLは取れましたが、これだと個別には書けませんし…。

無理、に一票。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2009-04-10 17:07
ブログパーツの提供元サイトが自前ではないのなら無理かもしれませんが、
単に貼ってあるURLを直して使ってね?というアプローチではなく、
フォームなどで必要なパラメータを入力して、
貼るためのHTMLをボタンで生成するのがよいかと思います。
それなら、個別に勝手な属性を用意する必要ありません。

もしくは、
コード:
<!--設定を作成して変数に-->
<script>
var foo = {
    param1 : "aaa",
    param2 : "bbb",
};
</script>
<!--変数名だけをパラメータに-->
<script src="...blog_parts.js?foo"></script>


というような雛形を作るのもありかと思います。
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2009-04-16 11:45
ありがとうございます。

Scriptタグに要素を入れた書式で、取得確認できました。
<script type="text/javascript" src="http://test.com/script.js" charset="utf-8" param1="#eeeeee"></script>

Scriptタグ(HTMLコード)の出力の自動生成ページはあるのですが、今回肝心のサーバ側Scriptソースが読み取ってくれない状態になってしまいました。
やはり、このパーツを組み込んでくれるユーザに分かりやすいようにと上記タグの書式は変えたくないとの事でした。

operaは確認していませんが、FireFox,Safari,Chrome,IE6以上では確認できました。
こうなると非対応のブラウザとするか、書式変更になるんでしょうか。。
ご確認いただき、ありがとうございました。相談します。
1

スキルアップ/キャリアアップ(JOB@IT)