私が使用しているすべてを完全にリロードせずにページをリロードするには:
window.top.location=window.top.location;
ただし、アンカーテキストがある場合、これは何らかの理由で機能しません。この場合、何もしないように見えますが、アンカーを更新する可能性が高くなります。
キャッシュされた画像とスクリプトをリロードせずにページをリロードする(上記のように)これに対する修正はありますか?
私が使用しているすべてを完全にリロードせずにページをリロードするには:
window.top.location=window.top.location;
ただし、アンカーテキストがある場合、これは何らかの理由で機能しません。この場合、何もしないように見えますが、アンカーを更新する可能性が高くなります。
キャッシュされた画像とスクリプトをリロードせずにページをリロードする(上記のように)これに対する修正はありますか?
を使ってみてくださいlocation.reload(false)
。
MDN が言うように、2 番目のパラメータはキャッシュをバイパスするかどうかを示すブール値です。false
必要に応じてキャッシュを使用し続けます。
私は次の状況でこれらすべてを試してきました: 私は顧客が製品のリストでプロジェクトを保存できるミニカートのある複雑なページを持っています. ここで、アコーディオンなどを開いて親ページをそのまま維持しながら、顧客が新しいページを開いてレポートをダウンロードできるようにしたいと考えました。
XP を実行している IE8 を使用しているお客様は、レポート ウィンドウを開いた後、親ページが文字化けしていました。プログラミングは、VB コード ビハインドを使用した ASP.NET で行われました。このソリューションは私にとってはうまくいきました。
Dim proj As String = "<script language=javascript> location.assign('/Projects.aspx');
window.open('Report.aspx?project=" & projid.Text & "&rpt=bill');</script>"
Session.Add("AddCart", idx.ToString("N0"))
Response.Write(proj)
location.assign は親ページを更新するために使用され、window.open はレポートを新しいウィンドウで開きます。
セッション変数は、どのアコーディオン行を開く必要があるかを追跡するために使用されます。これは Page_Load で処理されます
If Not Page.IsPostBack Then
LoadProjects()
If Session("AddCart") IsNot Nothing Then
Dim idx As Integer = Session("AddCart")
ProjAccordion.SelectedIndex = idx
Session.Remove("AddCart")
ElseIf Session("CopyProj") IsNot Nothing Then
Dim idx As Integer = Session("CopyProj")
ProjAccordion.SelectedIndex = idx
Session.Remove("CopyProj")
End If
End If
location.href を使用すると、トリック http://www.w3schools.com/jsref/prop_loc_href.aspになります