1

次のように、ヘッダーにスクリプトを呼び出すページがあります。

<script type="text/javascript" src="http://www.discoverfire.net/analytics/l/a.js"></script>

(このスクリプトはステージングドメインとしてローカルでDNSされているため、ロードできないことに注意してください)

とてもシンプル。

Firefox、IE、Chromeはすべて、この基本的なスクエアワン機能に問題はありません。

ただし、Operaはスクリプトのロードを拒否します。その中の変数または関数はすべて「未定義」であり、トンボでは、スクリプトタグはDOMに表示されますが、「スクリプト」タブには「スクリプトファイルが見つかりません」と表示されます。

私はグーグルに行ってランダムなページを見つけました、それらの外部の.jsファイルはうまく機能しているようです。

Operaが私を嫌う理由はありますか? 私が見逃しているセキュリティ/JavaScriptのものはありますか?

関連するかもしれないが、実際には違いがないはずのいくつかのこと:

  • スクリプトはページとは異なるドメインにあります。
  • このスクリプトは、私のローカルネットワークでのみ利用できます。ドメインは、ステージングのためにローカルでDNSされ、ネットワークの外部から別の場所を指します。Operaには外部DNSサーバーを密かに使用する設定がありますか?
  • スクリプトは、私が持っている他のすべてのブラウザで動作します。
  • 問題はスクリプトの内容にはありません。アラート付きの1行に減らしましたが、Operaでは機能しません。

アップデート:

OK、問題はOperaがドメインをどのように扱うかということのようです。

スクリプトを他のいくつかのドメインに移動しましたが、問題なく機能します。ローカルにDNSされたドメインのいくつかのパスに移動しましたが、そのドメインのどこからでも機能しません。

これは、Operaが何らかの理由でこのドメインからスクリプトをロードできない、またはロードしないという問題があると私に信じさせます。

不思議なことに、ドメインからページやその他のリソースをロードするのに問題はないようです。問題は.jsファイルにのみあります。

ドメインは登録されていますが、パークされています。ステージング/テストに使用できるようにローカルでDNSを使用しましたが、JSセキュリティを使用してOperaを混乱させる可能性があります。

しかし、私は間違っている可能性があります-私は本当にわかりません。他の誰かが持っているなら、私はそれを聞きたいです。

アップデート2:

Dragonflyとエラーコンソール/開発ツールに関しては、スクリプトについては何も言っていません。スクリプトから存在する必要のある変数と関数には未定義の変数エラーがたくさんありますが、それ以外はエラーはありません。奇妙なことに、スクリプトタグはDOMMに表示されますが、[スクリプト]タブをクリックすると、「スクリプトが見つかりません」と表示されます。

アップデート3:

ブロックされたコンテンツはないので、少なくともその設定を除外することができます。

4

8 に答える 8

2

Opera のエラー コンソールを確認しましたか? [ツール] > [詳細] > [エラー コンソール] ロードされない理由、または何らかの別のエラーがあるかどうかに関する情報を提供する必要があります。

于 2009-06-28T07:09:27.943 に答える
2

ジェイコブが提案したように、ブロックされていないかどうかを確認する必要があります。これをする:

  • ページを右クリック
  • コンテキストメニューで「コンテンツをブロック...」を選択します
  • 画面上部の「詳細...」ボタンをクリックします。
  • 現在のページでブロックされている URL が表示されます。
于 2009-06-28T07:38:13.003 に答える
2

広告ブロッカーが邪魔になっているかどうかを確認したい場合があります. URL に「analytics」というテキストが含まれています。これは、「これをブロックする」パターンの一部である可能性があります。Opera を介して Google アナリティクスをブロックしている人がいることは知っています。これを簡単にテストするには、.js をホスト上の別のパスに移動してみてください。

于 2009-06-27T22:45:41.967 に答える
1

あなたが目にしているのは、おそらくいわゆる「フィッシングファーム」攻撃に対するOperaのセキュリティ対策であるクロスネットワーク保護です。パブリックサーバーのコンテンツとローカルサーバーのコンテンツを混在させることはできません。

回避策については、ここで私の答えを見てください。

Operaは一部のJavaScriptファイルをロードしません

于 2012-03-23T09:41:32.643 に答える
1

私はまったく同じ問題を抱えていました。ローカルホスト/開発サーバーから、パブリックサーバーでホストされているページにスクリプトをロードする必要がありました。Operaにロードするスクリプトを管理する唯一の方法は、ページのコピーを同じ開発サーバー上の場所に保存し、タグを使用して元のドメインを参照し、ページの.cssおよび.jsリンクファイルを取得することでした。それはうまくいった。Operaはパブリックドメインとローカルホストドメインを混在させるのは好きではないようですが、苦情なしにローカルホストを処理します。

于 2010-10-20T15:18:14.197 に答える
1

最近似たようなことがありました.operaは外部サーバーでスクリプトを実行しませんでした...ダウンロードしてローカルホストに持っていたとしても。スクリプトタグ間でHTMLページにコピー/貼り付けた場合にのみ実行されました。

スクリプトが UTF-16 でエンコードされていることが判明し、それが何らかの形でブラウザを混乱させていました。UTF-8に変換したら問題なく動きました。

念のため、それでも問題が解決しない場合は、エンコード設定を確認してください...

于 2009-10-25T13:55:05.823 に答える
1

Opera フォーラムで質問してください。過去に Opera でいくつか問題がありましたが、迅速に対応してくれました。

于 2009-06-27T22:31:48.967 に答える
1

JavaScript ファイルの正しい MIME タイプを提供するホストです。これは一般的に知られた事実ではありませんがtype=text/javascript、サーバーが正しいタイプを指定していると信頼しているため、この属性は実際にはブラウザーによって無視されます。

さらに、text/javascriptJavaScript に関して言えば、実際の MIME タイプは間違っていますapplication/ecmascript(私の記憶が正しければ、そうかもしれませapplication/javascriptん)。信じられないという方は、こちらをご覧ください。詳しい情報があり、MIME タイプについて説明している Douglas Crockfords のビデオにリンクされています。

于 2009-06-27T22:51:19.613 に答える