簡體   English   中英

重定向后JS不起作用

[英]Js not works after redirect

我正在使用 apppresser 構建一個 WordPress APP,我想使用一個簡單的 JS 文件來隱藏菜單圖標,僅在一個頁面中。

當用戶登錄時,他將被重定向到此頁面。 JS 我寫過作品,但是當用戶登錄后重定向到此頁面時,JS 似乎不起作用。

似乎在重定向后它丟失了頁面引用。

有用的文檔: https : //docs.apppresser.com/article/392-custom-javascript

我創建了一個這樣的自定義 html 頁面,並為 div 分配了一個自定義 ID:

<img src="https://pathimage.com" onload="disableMenuToggle()" onbeforeunload="enableMenuToggle()" style="height:0px;width:0px; position:absolute;" />
<div id="pianoscaduto">
<button ion-button (click)="openPage('login-modale')">
<ion-icon name="ios-arrow-dropright" item-left></ion-icon>
  FAI IL LOGOUT
</button>
</div>

我的JS是:

function disableMenuToggle(){
 var menutoggle = document.getElementsByClassName( 'bar-button-menutoggle' );
if ( menutoggle.length > 0 ) {
        menutoggle[0].disabled = true;
   }
  }

function enableMenuToggle(){
 var menutoggle = document.getElementsByClassName( 'bar-button-menutoggle' );
if ( menutoggle.length > 0 ) {
        menutoggle[0].disabled = false;
   }
  }

我做了2次嘗試:

當我直接點擊菜單進入頁面時,菜單圖標按預期禁用。

但是當我登錄后重定向到此頁面時,代碼不起作用。

問題可能是重定向速度更快並且沒有時間加載頁面?

感謝幫助。

apppresser 使用 Angular 框架來構建單頁應用程序。 單頁應用程序“偽造”頁面加載。

您的自定義 JavaScript 在應用程序啟動時被加載,並立即運行。 當您在登錄頁面之后到達您的 html 頁面時,JavaScript 已經在登錄頁面上運行,並且不會在您的 HTML 頁面上再次運行。

您在自定義 JavaScript 中放入的任何代碼都只會在應用程序啟動時運行一次。

在您的情況下,您可以通過在自定義 HTML 頁面中放置隱藏圖像來偽造加載:

<img src="logo.png" onload="window.disableMenuToggle()" onbeforeunload="window.enableMenuToggle()" style="height:0px;width:0px; position:absolute;" />

並在您的自定義 JavaScript 中聲明函數disableMenuToggleenableMenuToggle

window.disableMenuToggle = function () {
  var menuToggle = document.getElementsByClassName("bar-button-menutoggle")
  if (menuToggle.length > 0) {
    menuToggle[0].disabled = true;
  }
}
// repeat for enable...

(Img 因為 onload 事件僅由少數幾個 HTML 元素觸發,而 img 就是其中之一)

編輯:當 JavaScript 運行時,您的自定義 HTML 也不會“准備好”,因此對於這部分,不要使用提供的 ready 函數,也不要在 body 元素上使用它。

暫無
暫無

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

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