javascript 在着陆页中动态包含关键字

Javascript to Dynamically Include Keywords in Landing Page

本文关键字:陆页 动态 包含 关键字 javascript      更新时间:2023-09-26

首先,让我为在这里完全是新手而道歉。13年前,我上了一门Javascript课程,似乎已经忘记了大部分内容。无论如何,我在网上找到了一些代码,可以在我们的页面上动态包含通过我们的 Google 广告的 URL 发送的关键字。我正在使用Jimdo创建一个免费网站,它们允许您将代码添加到正文中,但不确定是否可以添加到Head中。无论如何,当我将下面的代码添加到正文时,没有任何反应。为了工作,应该在哪里以及如何放置此代码?

示例:http://www.yourdomain.com?utm_term={keyword}

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split(“&”);
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split(“=”);
        if (pair[0] == variable) {
            return pair[1];
        }
    }
}
searchTerms = getQueryVariable(‘utm_term’);
if (searchTerms.length != 0) {
    searchTerms = searchTerms.replace(/+/g, ” “);
    searchTerms = unescape(searchTerms);
    document.write(“<h1>This headline is about ” + searchTerms + “</h1>”);
}
else {
    document.write(“<h1>This headline is generic.</h1>”);
}

这是小提琴: http://jsfiddle.net/dnd4kepr/

有两个问题:

  1. 单/双左/右引号 ( “&” )(或花哨的引号)抛出异常。你会想用你的普通简单/双引号 ( "&" ) 替换那些坏男孩。

  2. 一旦花哨的报价被替换,就会因正则表达式而抛出异常。你会想要像这样转义+角色:searchTerms = searchTerms.replace(/'+/g, ' ');

完成这两件事后,脚本开始工作!

<script type="text/javascript">
//<![CDATA[
function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i=0; i<vars.length; i++) {
        var pair = vars[i].split('=');
        if (pair[0] == variable) {
            return pair[1];
        }
    }
}

searchTerms = getQueryVariable('utm_term');
if (searchTerms.length != 0) {
    searchTerms = searchTerms.replace(/'+/g, ' ');
    searchTerms = unescape(searchTerms);
    write('<h1>This headline is about' + searchTerms + '</h1>');
}
else {
    write('<h1>This headline is generic.</h1>');
}
}, false)
//]]>
</script>

看看!

(function() {
    'use strict';
    function getParameterByName(name) {
        name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
        var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
        return results === null ? "" : decodeURIComponent(results[1].replace(/'+/g, " "));
    }
    var terms = getParameterByName('utm_term')
    var h1 = document.createElement('H1');
    /*
      or if you want to hook to existing el
      var h1 = document.getElementByTagName('h1');
      if there is only one `h1` on the page
      and remove document.body.appendChild(h1) at the end
    */
    if (terms) {
        var searchTerms = terms.replace(/'+|',/g, " "); // not sure how you want to format
        h1.innerText = "This headline is about " + searchTerms;
    } else {
        h1.innerText = "This headline is generic."
    }
    document.body.appendChild(h1);
})();

您的 html 中已经有<h1>了吗?如果是这样,那么你应该用jquery或vanilla js访问它,然后在那个el上做innerText。让我知道,我会编辑我的答案。