1

ご挨拶、

セキュリティで保護されたサイト (申し訳ありませんが、URL はありません) を立ち上げようとしていますが、IE6 で難解なバグを発見しました。これは、次の 3 つの要因が存在する場合にのみ発生します。

  1. ブラウザーは IE6 (これは金融クライアントであり、承認されたブラウザーです)
  2. SWFAddressは、すべて Flash であるページで使用されています。
  3. void(0)値が JavaScript 文字列に設定されたブラウザのブックマークから呼び出されます

Instapaper の "Read Later" ブックマークレットを使い慣れている場合は、ポップアップ ウィンドウを起動して [後で読む] ボタンを表示し、表示していた URL をサイトに送信してログに記録するのも同じ前提です。

これは、私がテストした親ウィンドウの他の URL でも機能します。SWF が SWFAddress を使用してブラウザー履歴/URL を更新する場合にのみ失敗します。これは、ブックマークレット ツールでキャプチャしようとしているディープリンク URL であるため、要件です。

私が理解しているように、親ウィンドウが JavaScript 文字列に移動しないように、JavaScript 文字列は void(0) で終わる必要があります。これは、href 属性での JavaScript の古い学校のアプリケーションの典型です。

次の 2 つのことがわかります。

  1. ブックマークに JS コードを含む新しいブラウザー ウィンドウを初めて開いた後、SWFAddress はブラウザーの履歴/URL バーを更新しなくなります。
  2. フォームを含む新しいブラウザ ウィンドウを送信して閉じた後、ブックマークを介してウィンドウを開いても、void(0) は無視され、親ウィンドウがリダイレクトされます。

ブックマーク コードは次のとおりです。

javascript:var%20d=document;w=window,f='http://mydomain.com/popup?l=',l=d.location,e=encodeURI,p=e(l.href),u=f+p;s=p.split('/');if(s[3]=='p'||s[3]=='t')u=u+'&p='+s[5];w.open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');void(0);

Flash の部分は別のベンダーによって管理されているため、私はそのベンダーのコードを制御したり洞察したりすることはできません。私は本当にこの問題を浮き彫りにして、この一連の要因でそのような問題に遭遇した人がいるかどうかを確認しようとしています.

どうもありがとう、マーク

4

3 に答える 3

1

こんにちは、これを試すことができます

<a href='#' onclick='document;w=window,f='http://mydomain.com/popup?l=',l=d.location,e=encodeURI,p=e(l.href),u=f+p;s=p.split('/');if(s[3]=='p'||s[3]=='t')u=u+'&p='+s[5];w.open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');'>click to visit</a>
于 2009-11-20T16:17:01.580 に答える
1

ブックマークレットにいくつかの構文エラーがあり、もう少し減らすことができるようです:

javascript:var%20f='http://mydomain.com/popup?l=',l=document.location,e=encodeURI,p=e(l.href),u=f+p,s=p.split('/');if(s[3]=='p'||s[3]=='t')u+='&p='+s[5];open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');void(0);

return false; を追加することもできます。void(0) の代わりに;

于 2009-11-20T17:09:37.353 に答える
1

getURL() または navigateToUrl() を使用している場合は、SWFAddress と競合することを知っておく必要があります。説明については、 http://www.asual.com/blog/swfaddress/2007/05/18/swfaddress-bad-practices.htmlを確認してください。

于 2009-11-20T17:14:14.580 に答える