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

时间:2019-02-19 09:26:55

标签: javascript php html

我正在尝试禁用网站上的按钮。我在控制台中使用的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

1 个答案:

答案 0 :(得分:0)

该脚本无法正常运行,因为它可能是在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>