2010-12-08 9 views
3

を見つけることができません、それは正常に動作しますが、サファリ(少なくとも、サファリ4.0.5)にそれはにReferenceErrorができる」と言います変数が見つかりません - コンテンツがDIVに動的にロードされました。SafariはこのDIV内の関数定義を見ることができません - ただし、メインのHTMLページ(すなわちDIVではなく)に関数newfunc()を置くと、ボタンを押すと機能が呼び出されます。サファリにReferenceError:私はIEでDIV</p> <pre><code><script> function newfunc() { alert("here"); } </script> <button type="button" onclick="newfunc()">Press me</button> </code></pre> <p>自身の中で、次のとFFいる変数

SafariにDIVに追加されたJavascript関数が表示されていないかのようです。

ご協力いただければ幸いです。ページに動的に追加され

アダム

+0

これが当てはまる場合は、私たちに何を期待していますか?あなたの唯一の選択は、JSコードを本体に置くことです。どの言語がサーバー側のコードであるか教えてください、現在のコードを投稿してください。 –

+0

例えば、divコンテンツがロードされたときにチェックされる例えばセッションデータに依存する動的コンテンツを含む関数があるため、すべての関数をメインページに入れることはできません。 – adam

+0

http://www.gymadvisory.co.ukを参照してください。Find Gymsをクリックしてください。これはおそらくボタンの要素にtype = "button"属性がなく、jqueryによって割り当てられたクリック関数がjavascriptを呼び出すためですそれが見つからない機能はサブミットする - 欠けている属性を追加するとそれが止まるが、ボタンを押しても何もしない。 – adam

答えて

5

Javascriptが正しく初期化するためにはeval-Dにする必要があります。

関数定義のために正しく機能するためには、少し異なるフォーマットにする必要があります。例:

DIVにコンテンツを追加した後、DIVからすべてのタグ要素を抽出し、その内容を評価します。 divIdは、あなただけのコンテンツが移入div要素のIDです

$(divid).innerHTML.evalScripts(); 

:PrototypeJS(http://www.prototypejs.org/api/)を使用して、例えば

、。

関連する問題