13

IE を使用している場合、「戻る」ボタンが常に前のページに戻るとは限らない Web サイトを開発しました。Firefox または Chrome では問題ありません。特定のページ変更について、IE が最初にページを表示できず、その後正常にロードされたように見えますが、最初の失敗は履歴に表示されます。

次に「戻る」を押すと、最初にエラー エントリに戻り (画面上は何も変化しません)、次にボタンを 2 回押すとページが戻ります。

ウェブページを表示できません

Firefox で同じ動作が見られず、ページ遷移でリダイレクトを行っていません。.htaccess私が持っている唯一のルールは FURL です。これは直接の書き換えであり、リダイレクトはありません。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

ページでIEが気に入らなかったものを見つけるためのアプローチを誰かが提案できますか?

IE7 と IE9 でも同じ現象が発生しています。

更新: これをリンクされたプラグインに分離したと思います。これらはサイト全体で使用されます。プラグインを持たないページは期待どおりに動作し、歴史的には何も変ではありません。一部のページには、「Follow Us」プラグインがあります。

<script src="//platform.linkedin.com/in.js" type="text/javascript"></script>
<script type="IN/FollowCompany" data-id="568783" data-counter="none"></script>

そして、これらのページに移動すると、履歴に「ページを表示できません」という単一のメッセージが表示されます。別のページでは、リンクインからの 5 つのプロファイルとFollow Usプラグインをチーム ページに入力するために、6 つのプラグインが呼び出されています。linkedin を呼び出すたびに、履歴に「このページを表示できません」というメッセージが表示されます。

ここに画像の説明を入力

なぜこれが起こるのでしょうか?

4

1 に答える 1

3

この回答は何が起こっているのかを説明するものではありませんが、本当の回答が明らかになるまでここに残しておきます (この問題はおそらく LinkedIn 自身で修正する必要があります)。

LinkedIn はプラグインを使用してコンテンツを取り込むことを望んでいますが、奇妙なリダイレクトと履歴に表示されるエラーによってこの問題が発生し、[戻る] ボタンが壊れます。JavaScript は 2 レベルの iframe をページに挿入しますが、2 番目のレベルのフレームを取得して、これを html に直接配置することができます。これには、はるかに高速であるという利点がありますが、LinkedIn のバックエンドで何かが変更された場合に備えて維持する必要があるという欠点があります。

たとえば、次の iframe は特定の会社の Follow Us プラグインを取り込みます。

<iframe id="easyXDM_IN_Lib_li_gen_1346300675316_0_provider" frameborder="0"
  src="http://www.linkedin.com/cws/followcompany?companyIdentifier=568783&counterPosition=none&original_referer=http%3A%2F%2Fwww.marshallmcadam.com.au%2Four-team.html&token=&isFramed=false&lang=en_US&_ts=1346111060041.3884" 
  style="width: 83px; height: 20px; display: inline-block;"
  name="easyXDM_IN_Lib_li_gen_1346300675316_0_provider">
</iframe>

これは重要な部分です:

src="http://www.linkedin.com/cws/followcompany?companyIdentifier=568783"

識別子は、フォロー ボタンを提供するものと一致する必要があります。オプションの残りの部分は、生成された iframe コードから直接取り除かれたため、ほとんど不要です。

于 2012-09-24T00:41:08.130 に答える