2011-11-15 3 views
0

ここではすべてのクロムオンクリックの問題を検索しましたが、問題は私にはありません。Chrome POST/GETデータがインラインJavaScriptに影響する

私はこれが正常に動作しますIE & FFで、私はそうのように(PHPで)上のonclickイベントを入れていますDIV、...

$design_code = '<div class="skip" onclick="skipOffer2();">'.$design.'</div>'; 

を持っています。 Chromeでは、時間のおよそ50%で動作します。それは動作しませんし、私はこれがChromeでのFirebugを使ってDIV調べると、それは空のonclickイベントを示しています。

<div class="skip" onclick=""> 

を私は、このイベントを除去する任意のコードを持って、それを上書きし、またはそれは全くDIVで何もしていません、そして再び...それはChromeでのみ起こっています。何とかChromeがこのイベントを削除しています。

ミックスに混乱を加えるために、「javascript:」というonclick関数の前にChromeを100%使用します。

$design_code = '<div class="skip" onclick="javascript:skipOffer2();">'.$design.'</div>'; 

誰でもこの問題が発生していますか? Chromeは本当に自分のイベントハンドラを削除しているのですか?最後に、なぜ「javascript:」を付け加えると問題が解決されるのでしょうか?


UPDATE 1: 問題は、実際には、前のページから渡されたPOSTデータに関係しています。私は、 "onclick%3D%22skipOffer2%28%29%22"のテキストを含む前のページからurlencoded文字列を渡しています。

現在のページでは、このonclick関数を使用することはできません。 onclick = "skipOffer2()"を使用しようとすると、Chromeはそれを削除して空のonclickイベントを残します。

現在のページに影響を与えるPOSTデータ(使用されていないもの)はどのようになっていますか?他の誰かがこれを確認できますか?ここで

は私のテストのURLです:http://mattkeaveney.com/test1.php


UPDATE 2: 問題があまりにもGETデータに存在する..

http://mattkeaveney.com/test2.php?test=onclick%253D%2522alertMe%2528%2529%2522

+1

練習[行動の分離](http://www.alistapart.com/articles/behavioralseparation)... –

+0

真の邪魔にならないjavascriptは別の方法ですが、経験した問題については説明しません。 –

答えて

0

私は "onclickのクロームのバグ" をGoogleで検索し、多くがあります問題の報告のページ。なぜ、私はGoogleがまだそれを把握しようとしていると思う。

0

GETまたはPOSTを介して任意のJSを渡して、ページ上で実行されることは本当にありません。そうすることで、クロスサイトスクリプティングやその他多くのセキュリティ上の脆弱性が引き起こされます。

これらの種類の攻撃を防ぐために、ChromeはJSを除外している可能性があります。このフィルタリングを回避するヘッダを提供していますが、実際にはウェブサイトを再構築するだけです。

+0

申し訳ありませんが、私はより具体的にすべきでした、私はGET/POSTを通過しているJSはページ上で実行されていません - 私はどんな方法でもそのデータにアクセスしていません!私の例のリンクを参照してください。それは完全なJSではありません。これは実際には文字列であり、その文字列はurlencodeされています。 –

関連する問題