4

今まで見た中で最も奇妙なバグの 1 つに対する解決策を見つけたところですが、まだ理由を見つけようとしています...

Classic ASP の古い CMS を入手しました。エディター ページには、画像のプロパティを変更する JavaScript があります。

function removeimg(objimg){
    objimg.onclick = "";
    objimg.src = "/Logiciel/_Altitude_image/interface/Gestion_acces/spacer.gif";
    objimg.width = 16;
    objimg.style.cursor = "arrow";
}

IE6 を使用している私のクライアントの 1 人は、コンテンツを英語で保存すると、コンテンツをフランス語で上書きしていると言いましたが、言語はクラシック ASP セッションに保存されているので、バグの調査を開始しました (他の 200 のクライアントはどれも取得できませんでした)。その種の問題) だから、response.end をコードに入れ、セッションの response.write を何度もテストして、どこが変更されているかを調べた後、それが javascript 自体にあることがわかりました。

これは私が説明できない部分です...私は入れなければなりませんでしたobjimg.style.cursor = "arrow"; 最初にコメントで、その行が出たら、ASPセッションに問題がなくなったことに気づきました。

その後、いくつかのテストを行った後、に変更objimg.style.cursor = "arrow";したobjimg.style.cursor = "pointer";ところ、問題なく動作しました。誰かが以前にそのような問題を抱えていたのではないかと思っていました.カーソルの変更がサーバー側の従来のASPセッションにどのように影響するかを誰かが説明してくれませんか.

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

4

1 に答える 1

6

これは IE のバグです:見つけるarrowスクリプトによってプロパティになどの無効な値が与えられた場合cursor(ただし CSS ではありません)、それをあたかもそうであるかのように誤って扱い、url(arrow)表示されるべきであると信じている「arrow」という名前の画像ファイルを取得しようとします。この追加の HTTP 要求は、作成元のページに関連付けられたすべての Cookie を送信します。cookie には ASP セッション識別子 cookie が含まれており、おそらく、この予期せぬシーケンス外の要求がセッション関連のコードに何らかの影響を与えていたのでしょう。

(ちなみに、カーソルが通常の矢印カーソルであると想定されている場合、正しい値はdefault;pointerは、リンク上にホバリングすることに関連付けられているカーソルです。しかし、最初はそれが必要だったのかもしれません。)

于 2009-09-17T15:26:43.163 に答える