onclick事件不会直接触发url

Onclick event won't trigger url direct

我有一个要调整的工作片段。我正在尝试更改 OnClick 事件(请参阅更改后的代码),但无法触发 OnClick 事件。

什么有效:

add_action( 'woocommerce_before_single_product', 'my_button_function', 10 );
function my_button_function() {
  global $product;
  echo ' <button type="button" class="back-button" onclick="history.back();"> Back to overview </button> '; 
}

修改后的代码(我没有收到任何错误,但按钮什么也没做)

add_action( 'woocommerce_before_single_product', 'my_button_function', 10 );
function my_button_function() {
        global $product;
        echo '<button type="button" class="back-button" onclick="window.open("https://www.lanacreations.nl/products");"> Back to overview </button>'; 
    }

我还尝试将 onclick 事件放入单独的函数中:

function myClickFunction() {
  window.open("https://www.lanacreations.nl/products");
}

add_action( 'woocommerce_before_single_product', 'my_button_function', 10 );
function my_button_function() {
    global $product;
    echo ' <button type="button" class="back-button" onclick="myClickFunction()"> Back to overview </button> '; 

有没有人看出我做错了什么?

谢谢!

您的最后一段代码无效,它混淆了 PHP 和 JavaScript。您的第二个 块会 工作,但看起来您只是有一个语法错误。你的属性中有双引号,用双引号括起来 - 所以你的 HTML 被打破了,实际上被解释为:

onclick="window.open(" https:="" www.lanacreations.nl="" products");"="">

因此,要解决此问题,您可以将 JavaScript 函数中的双引号替换为单引号,前提是您 Escape 它们。如果你用 ' 开始一个字符串,你可以用正斜杠 \' “转义”一个单引号来告诉 PHP “我希望你实际上在这里放一个单引号,而不是对待这就像字符串的结尾。

试试这个:

add_action( 'woocommerce_before_single_product', 'my_button_function', 10 );
function my_button_function() {
    global $product;
    echo '<button type="button" class="back-button" onclick="window.open(\'https://www.lanacreations.nl/products\');"> Back to overview </button>'; 
}