代码之家  ›  专栏  ›  技术社区  ›  eddiewastaken

JavaScript在控制台中运行,但不在页面中运行

  •  0
  • eddiewastaken  · 技术社区  · 5 年前

    我正试图禁用我网站上的一个按钮。我的JavaScript在控制台中工作:

    list = document.getElementsByClassName("single_add_to_cart_button button alt");
    list[0].disabled = true;
    

    但将其添加到页面中并不起作用:

    add_action( 'wp_head', function () { ?>
        <script>
        list = document.getElementsByClassName("single_add_to_cart_button button alt");
        list[0].disabled = true;
        </script>
    <?php } );
    

    我还尝试等待加载对象:

    add_action( 'wp_head', function () { ?>
        <script>
        list = document.getElementsByClassName("single_add_to_cart_button button alt");
        list[0].addEventListener("load", disable);
        function disable() {    
            list = document.getElementsByClassName("single_add_to_cart_button button alt");
            list[0].disabled = true;
        };
        </script>
    <?php } );
    

    here

    0 回复  |  直到 5 年前
        1
  •  0
  •   Mosè Raguzzini    5 年前

    该脚本可能在HTML完全加载之前执行,因此无法正常工作。

    <html>
      <body>
      <!--- your content --->
    
        <script>
        list = document.getElementByClassName("single_add_to_cart_button button alt");
        list[0].addEventListener("load", disable);
        function disable() {    
            list = document.getElementsByClassName("single_add_to_cart_button button alt");
            list[0].disabled = true;
        };
        </script>
      </body>
    <html>