【问题标题】:Javascript not calling in Brave BrowserJavascript 未在 Brave 浏览器中调用
【发布时间】:2021-10-25 03:24:41
【问题描述】:

我有一个可以在除 Brave Browser 之外的所有浏览器上运行的功能。知道为什么吗?

有一个表单调用函数来重定向到用户输入的新 URL。在勇敢的浏览器中调用时,它什么也没做。它适用于所有其他浏览器。这是从 Wordpress 网站调用的。这和它有什么关系吗?

    <form id="url-10">
            <input id="red-border-error-2" class="url10-form" type="text" name="urlName-10">
            <input class="url10-button" type="submit" value="Build your app"></input>
        </form> 
<div id="error-message-10"></div>

<script>
    // JavaScript goes here

    
    
        document.getElementById("url-10").addEventListener("submit", (event) => {
                event.preventDefault()
                let errorMessage = document.getElementById("red-border-error-2").placeholder = " Type your store URL here ";
                let x = document.getElementById("red-border-error-2");
                let myForm = document.getElementById("url-10");
                let formData = new FormData(myForm);
                if (formData.get("urlName-10") === "") {
                return x.classList.add('placeholder-red-text');
                errorMessage;
                }
                else{
                    EndOfUrl = sanitizeDomainInput(formData.get("urlName-10"));
                    newUrl = redirectLink(EndOfUrl);
                    markConversionAndRedirect(newUrl);
                    return false;
                }

            });

            function markConversionAndRedirect(newUrl) {
                    gtag('event', 'conversion', {
                        'send_to': 'G-Q0HF9N3DYR/connect_square',
                        'event_callback': function () { window.location.href = newUrl }

                    })
                };


            function sanitizeDomainInput(input) {
                input = input || 'unknown.com'
                if (input.startsWith('http://')) {
                    input = input.substr(7)
                }
                if (input.startsWith('https://')) {
                    input = input.substr(8)
                }
                var regexp = new RegExp(/^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$/)
                return regexp.test(input) ? input : 'unknown.com';


            };

            function redirectLink(domain) {
                const urlParams = new URLSearchParams(window.location.search);
                const refValue = urlParams.get('ref'); 
                return `https://dashboard.getorda.com/signup/?state=${domain}` + (refValue ? `_${ refValue }` : '');
            };

</script>

【问题讨论】:

    标签: javascript html brave


    【解决方案1】:

    我会说这是因为 Brave 阻止了您正在使用的 gtag.js 库。因为您的重定向发生在 gtag 回调函数内部,这意味着 Brave 永远不会执行此代码。

    您可以修改您的markConversationAndRedirect 函数,这样即使gtag 被阻止,它也能正常工作。见下文。

    function markConversionAndRedirect(newUrl) {
      if (typeof gtag !== 'undefined') {
        // gtag is loaded, we can safely use it
        gtag('event', 'conversion', {
          'send_to': 'G-Q0HF9N3DYR/connect_square',
          'event_callback': function () { window.location.href = newUrl }
        })
      } else {
        // gtag didnt load, redirect anyway
        window.location.href = newUrl
      }
    };
    

    【讨论】:

    • 感谢您指出这一点。可能是问题,但我粘贴了您的代码,但仍然没有响应...:/
    • 使用表单时浏览器控制台中的任何内容?
    猜你喜欢
    • 2022-06-21
    • 2021-06-10
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多