簡體   English   中英

如何確定我的頁面是在普通瀏覽器中呈現還是在 SAP CL_GUI_HTML_VIEWER 中呈現

[英]How can I identify if my page is rendered in a normal browser or SAP CL_GUI_HTML_VIEWER

我正在做一個演示,模擬帶有觸摸事件的移動設備,因此在桌面瀏覽器的觸摸事件上捏縮放或滾動事件。 到目前為止,我已經在 Chrome、IE 和 Firefox 中使用了它。

最后一個要求是同樣的代碼也必須從 SAP CL_GUI_HTML_VIEWER類內部運行。 至少當它在 Windows 上運行時,這個類基本上被識別為 IE。

我的問題是,無論出於何種原因, CL_GUI_HTML_VIEWER都不支持像在 IE 中那樣的pointerdownpointermove等實際瀏覽器事件

所以我希望能夠嘗試確定頁面是在 IE 中呈現的,還是在 SAP 中呈現的。 但是,由於 SAP 使用 IE,我的 javascript 總是說它是 IE。

有什么具體的方法可以識別差異嗎?

只是為了闡明如何在 SAP GUI 中加載網頁。 我正在調用方法show_url( url = myurl in_place = 'X' ). 對於我的CL_GUI_HTML_VIEWER實例。 所以我的 ABAP 基本上是這樣的:

data: g_html_view type ref to CL_GUI_HTML_VIEWER,
      g_custom_container type ref to CL_GUI_DOCKING_CONTAINER,
      edurl(1024) value 'http://localhost:8080/MyPage.html'.

if g_custom_container is initial.
    create object g_custom_container
        exporting
            extension = 3000.
endif.
if g_html_view is initial.
    create object g_html_view
        exporting
            parent = g_custom_container.
endif.
call method g_html_view->show_url( url = edurl in_place = 'X' ).

您可以嘗試以下任何一種方法:

>>> window.is_sap_gui
true

>>> window.sapHtmlControl
"TRUE"

>>> window.location.protocol
"sapr3:"

我們使用第一個選項,但該選項可能是我們在框架中明確定義的選項。 第二個是 SAP 可能正在設置的一個。

如果其中任何一個都失敗,最好的方法是檢查協議。 這將是一個致命的贈品。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM