簡體   English   中英

腳本可以在瀏覽器控制台中正常運行,但不能在線運行

[英]Script runs fine in the browser console, but not online

我正在與Wordpress網站合作,在其中構建導航欄。 我要添加的功能之一是,如果您在某個頁面上,則導航欄中的選項將以粗體顯示,表示您正在訪問的網站部分。

我正在嘗試使用JavaScript來實現此目的,因為我對PHP沒有任何工作知識:

var current_page = document.URL;
var current_option_id="";
if(current_page==="some-url"){
  current_option_id="menu-item-34";
}
document.getElementById(current_option_id).getElementsByTagName("A")[0].style.fontWeight="bold";

基本上,我的代碼找出了我們所在的頁面,並將右側菜單選項的ID分配給current_option變量。 然后,腳本將嘗試選擇適當的菜單選項,選擇該菜單選項內的鏈接,並更改其樣式。

該腳本的問題在於它根本無法工作,並在無法選擇HTML元素的地方產生了錯誤。 document.getElementById(current_option); 返回null。 但是 ,當我在控制台中執行此操作時,它可以正常工作,並且樣式已正確更改。 為什么是這樣? 我知道current_option變量具有正確的值,但是當腳本嘗試選擇要更改的元素時腳本將失敗。

任何建議和幫助,我們將不勝感激。 如果您知道如何在PHP中使用與Wordpress很好地集成的方法,請進行共享(並解釋您的代碼如何工作!)。 如果我違反了任何StackOverflow規則,我深表歉意。

在看不到代碼的情況下很難說,但是有可能在加載整個頁面之前(或者更具體地說,在將ID #menu-item-34的元素添加到DOM之前)執行腳本。 ?

嘗試將腳本包裝到一個函數中,然后將該函數設置為頁面的onload處理程序:

window.onload = function() {
    /* code goes here */
};

暫無
暫無

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

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