X
Tik hier voor de mobiele versie van de website.

Ondersteuningsforum

History management problem, specifically with window.history.go (-1)

Geplaatst

An application publishes a page "#1" on which the user clicks on the button. The application prepares an html (say "DOCUMENT.html") on an IFS, then publishes the page "LOADER" - as in figure A - with the URI of the prepared file. "DOCUMENT.html" then is loaded and in turn contains the instructions of figure B. When it is closed the control should return to the "LOADER" which in turn closes returning to page "#1". This works regularly the first time but, if the process is repeated, the return is the page "# 0" and if it is repeated again it goes even further back. What's wrong ? Keep in mind that the whole application uses jQuery and that other browsers (IE, Edge, Chrome) do not have this issue and always they return to page "# 1" Thanks Roberto

An application publishes a page "#1" on which the user clicks on the button. The application prepares an html (say "DOCUMENT.html") on an IFS, then publishes the page "LOADER" - as in figure A - with the URI of the prepared file. "DOCUMENT.html" then is loaded and in turn contains the instructions of figure B. When it is closed the control should return to the "LOADER" which in turn closes returning to page "#1". This works regularly the first time but, if the process is repeated, the return is the page "# 0" and if it is repeated again it goes even further back. What's wrong ? Keep in mind that the whole application uses jQuery and that other browsers (IE, Edge, Chrome) do not have this issue and always they return to page "# 1" Thanks Roberto
Gekoppelde schermafbeeldingen
Citeren

Aanvullende systeemdetails

Toepassing

  • Firefox 67.0.4
  • Useragent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
  • Ondersteunings-URL: https://support.mozilla.org/1/firefox/67.0.4/WINNT/it/

Extensies

Javascript

  • incrementalGCEnabled: True

Grafisch

  • adapterDescription: Intel(R) UHD Graphics 620
  • adapterDescription2: NVIDIA GeForce 930MX
  • adapterDeviceID: 0x5917
  • adapterDeviceID2: 0x134e
  • adapterDrivers: igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32
  • adapterDrivers2: C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumdx.dll,C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumdx.dll,C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumdx.dll,C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumdx.dll C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumd.dll,C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumd.dll,C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumd.dll,C:\Windows\System32\DriverStore\FileRepository\nvbli.inf_amd64_e9e01ed119e9bf32\nvldumd.dll
  • adapterRAM: Unknown
  • adapterRAM2: 2048
  • adapterSubsysID: 00000000
  • adapterSubsysID2: 00000000
  • adapterVendorID: 0x8086
  • adapterVendorID2: 0x10de
  • clearTypeParameters: Gamma: 1,8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50
  • contentUsesTiling: False
  • crashGuards: []
  • direct2DEnabled: True
  • directWriteEnabled: True
  • directWriteVersion: 10.0.17763.615
  • driverDate: 12-10-2018
  • driverDate2: 3-1-2019
  • driverVersion: 25.20.100.6472
  • driverVersion2: 25.21.14.1935
  • featureLog: {u'fallbacks': [], u'features': [{u'status': u'available', u'description': u'Compositing', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'HW_COMPOSITING'}, {u'status': u'available', u'description': u'Direct3D11 Compositing', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'D3D11_COMPOSITING'}, {u'status': u'available', u'description': u'Direct2D', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'DIRECT2D'}, {u'status': u'available', u'description': u'Direct3D11 hardware ANGLE', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'D3D11_HW_ANGLE'}, {u'status': u'available', u'description': u'GPU Process', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'GPU_PROCESS'}, {u'status': u'opt-in', u'description': u'WebRender', u'log': [{u'status': u'opt-in', u'message': u'WebRender is an opt-in feature', u'type': u'default'}], u'name': u'WEBRENDER'}, {u'status': u'blocked', u'description': u'WebRender qualified', u'log': [{u'status': u'available', u'type': u'default'}, {u'status': u'blocked', u'message': u'Has battery', u'type': u'env'}], u'name': u'WEBRENDER_QUALIFIED'}, {u'status': u'available', u'description': u'Off Main Thread Painting', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'OMTP'}, {u'status': u'available', u'description': u'Advanced Layers', u'log': [{u'status': u'available', u'type': u'default'}], u'name': u'ADVANCED_LAYERS'}]}
  • info: {u'AzureContentBackend (UI Process)': u'skia', u'AzureCanvasBackend (UI Process)': u'skia', u'ApzWheelInput': 1, u'ApzDragInput': 1, u'ApzKeyboardInput': 1, u'AzureFallbackCanvasBackend (UI Process)': u'cairo', u'ApzAutoscrollInput': 1, u'AzureCanvasBackend': u'direct2d 1.1', u'AzureContentBackend': u'direct2d 1.1'}
  • isGPU2Active: False
  • lowEndMachine: False
  • numAcceleratedWindows: 1
  • numTotalWindows: 1
  • offMainThreadPaintEnabled: True
  • offMainThreadPaintWorkerCount: 4
  • targetFrameRate: 60
  • usesTiling: False
  • webgl1DriverExtensions: GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object OES_compressed_EAC_R11_signed_texture OES_compressed_EAC_R11_unsigned_texture OES_compressed_EAC_RG11_signed_texture OES_compressed_EAC_RG11_unsigned_texture OES_compressed_ETC2_RGB8_texture OES_compressed_ETC2_RGBA8_texture OES_compressed_ETC2_punchthroughA_RGBA8_texture OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture OES_compressed_ETC2_sRGB8_alpha8_texture OES_compressed_ETC2_sRGB8_texture
  • webgl1Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_disjoint_timer_query EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_filter_anisotropic OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
  • webgl1Renderer: Google Inc. -- ANGLE (Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0)
  • webgl1Version: OpenGL ES 2.0 (ANGLE 2.1.0.eff6bfdb1db9)
  • webgl1WSIInfo: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000f96a) EGL_VERSION: 1.4 (ANGLE 2.1.0.eff6bfdb1db9) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_MOZ_create_context_provoking_vertex_dont_care EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_ANGLE_explicit_context
  • webgl2DriverExtensions: GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_multiview GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object OES_compressed_EAC_R11_signed_texture OES_compressed_EAC_R11_unsigned_texture OES_compressed_EAC_RG11_signed_texture OES_compressed_EAC_RG11_unsigned_texture OES_compressed_ETC2_RGB8_texture OES_compressed_ETC2_RGBA8_texture OES_compressed_ETC2_punchthroughA_RGBA8_texture OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture OES_compressed_ETC2_sRGB8_alpha8_texture OES_compressed_ETC2_sRGB8_texture
  • webgl2Extensions: EXT_color_buffer_float EXT_disjoint_timer_query EXT_float_blend EXT_texture_filter_anisotropic OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
  • webgl2Renderer: Google Inc. -- ANGLE (Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0)
  • webgl2Version: OpenGL ES 3.0 (ANGLE 2.1.0.eff6bfdb1db9)
  • webgl2WSIInfo: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000f96a) EGL_VERSION: 1.4 (ANGLE 2.1.0.eff6bfdb1db9) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_MOZ_create_context_provoking_vertex_dont_care EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_ANGLE_explicit_context
  • windowLayerManagerRemote: True
  • windowLayerManagerType: Direct3D 11
  • windowUsingAdvancedLayers: True

Aangepaste voorkeuren

Div

  • User JS: nee
  • Toegankelijkheid: nee
Wesley Branton
  • Top 10 Contributor
589 oplossingen 4999 antwoorden

I'm not entirely sure what issue you are having. The code that you have posted appears to work fine for me, unless I'm not entirely understanding what behaviour you are expecting.

When I open the LOADER file, it will create a new popup window with the DOCUMENT file loaded. According to your code in figure A, that's the behaviour I assume you were going for.

When I click one of the cells, another popup window opens without the toolbar and loads the file. According to your code, that appears to be the behaviour that you were looking for.

But perhaps I'm not sure what you are trying to accomplish here. Because you are opening a new window to display the DOCUMENT file, the window.history.go(-1) code is pointless since there is no history for that window to go back to.

The code you have posted works identical on Firefox, Google Chrome and Internet Explorer.

You could try changing window.history.go(-1) to the preferred window.history.back(), but the behaviour will likely remain unchanged.

I'm not entirely sure what issue you are having. The code that you have posted appears to work fine for me, unless I'm not entirely understanding what behaviour you are expecting. When I open the LOADER file, it will create a new popup window with the DOCUMENT file loaded. According to your code in figure A, that's the behaviour I assume you were going for. When I click one of the cells, another popup window opens without the toolbar and loads the file. According to your code, that appears to be the behaviour that you were looking for. But perhaps I'm not sure what you are trying to accomplish here. Because you are opening a new window to display the DOCUMENT file, the <code>window.history.go(-1)</code> code is pointless since there ''is'' no history for that window to go back to. The code you have posted works identical on Firefox, Google Chrome and Internet Explorer. You could try changing <code>window.history.go(-1)</code> to the preferred <code>window.history.back()</code>, but the behaviour will likely remain unchanged.

Bewerkt door Wesley Branton op

Was dit nuttig voor u?
Citeren

Vraageigenaar

I thank you very much for your promptness in answering to my issue, but evidently I did not explain the problem clearly. So I decided to make a short (2:43) scratch video to show the different behaviour of Firefox from other browsers. If you want you can see it at https://www.screencast.com/t/Zq7ZXhJ9M2M and then give me some advices about possible solutions. Thank you again. Roberto

I thank you very much for your promptness in answering to my issue, but evidently I did not explain the problem clearly. So I decided to make a short (2:43) scratch video to show the different behaviour of Firefox from other browsers. If you want you can see it at '''https://www.screencast.com/t/Zq7ZXhJ9M2M''' and then give me some advices about possible solutions. Thank you again. Roberto
Was dit nuttig voor u?
Citeren
jscher2000
  • Top 10 Contributor
8687 oplossingen 71011 antwoorden

Hi Roberto, thank you for the video.

Why are you using window.history.go(-1) at all??

If you have a problem with unwanted link navigation/form submission, try using return false; to cancel that. I think you could do that in place of your history navigation, or you can add it to your onclick handler. For example:

<a href="p1.html" onclick="doIt(this); return false;">p1</a>

As for why Firefox is different from Chrome, I'm not sure. When you went forward to your results page, it seems that navigation is being ignored for purposes of window.history.go(-1) and so -1 starts from the previous page. However, it would be useful to get a simplified demonstration page to better compare the behavior.

Hi Roberto, thank you for the video. Why are you using <code>window.history.go(-1)</code> at all?? If you have a problem with unwanted link navigation/form submission, try using <code>return false;</code> to cancel that. I think you could do that in place of your history navigation, or you can add it to your onclick handler. For example: &lt;a href="p1.html" onclick="doIt(this); return false;">p1&lt;/a> As for why Firefox is different from Chrome, I'm not sure. When you went ''forward'' to your results page, it seems ''that'' navigation is being ignored for purposes of <code>window.history.go(-1)</code> and so -1 starts from the previous page. However, it would be useful to get a simplified demonstration page to better compare the behavior.
Was dit nuttig voor u?
Citeren

Vraageigenaar

I don't want to bore you but I have to explain that the html of the attached figure is a dynamic script created by the application in the face of different requests. In many programs, when it is necessary to bring any document to the screen, the application searches for (or creates) the requested document, sets it aside and then creates and publishes the LOADER with the window.open instruction set each time with the reference. Reading the forum I thought that Cache-control could create different behavior, but doing different tests with or without META I didn't solve the difference. Many thanks, however, for your kind solicitude, which I greatly appreciate. Best regards. Roberto

I don't want to bore you but I have to explain that the html of the attached figure is a dynamic script created by the application in the face of different requests. In many programs, when it is necessary to bring any document to the screen, the application searches for (or creates) the requested document, sets it aside and then '''''creates''''' and '''''publishes''''' the LOADER with the window.open instruction set each time with the reference. Reading the forum I thought that Cache-control could create different behavior, but doing different tests with or without META I didn't solve the difference. Many thanks, however, for your kind solicitude, which I greatly appreciate. Best regards. Roberto
Was dit nuttig voor u?
Citeren
jscher2000
  • Top 10 Contributor
8687 oplossingen 71011 antwoorden

Is Relazioni the popup window? What window is Documento?

It would be helpful to have a simplified test case to work with.

Meanwhile:

You might want to force the toolbar on in popups so you can compare the back/forward history between the different requests (where Firefox ends up in the stack, or whether any entries are missing that you expect):

(1) In a new tab, type or paste about:config in the address bar and press Enter/Return. Click the button promising to be careful or accepting the risk.

(2) In the search box above the list, type or paste toolb and pause while the list is filtered

(3) Double-click the dom.disable_window_open_feature.toolbar preference to switch the value from false to true

Is Relazioni the popup window? What window is Documento? It would be helpful to have a simplified test case to work with. Meanwhile: You might want to force the toolbar on in popups so you can compare the back/forward history between the different requests (where Firefox ends up in the stack, or whether any entries are missing that you expect): (1) In a new tab, type or paste '''about:config''' in the address bar and press Enter/Return. Click the button promising to be careful or accepting the risk. (2) In the search box above the list, type or paste '''toolb''' and pause while the list is filtered (3) Double-click the '''dom.disable_window_open_feature.toolbar''' preference to switch the value from false to true
Was dit nuttig voor u?
Citeren
Een vraag stellen

U moet zich aanmelden bij uw account om op berichten te antwoorden. Stel een nieuwe vraag als u nog geen account hebt.