1

我有一个 JS 代码,我想在 FTL 上进行转换,这样用户就无法查看它背后的逻辑。这可能吗?

我正在考虑使用 <#if> 和 <#assign> 作为逻辑,但不知道如何开始。找到任何其他资源,看起来 Freemarker 文档很痛苦。

    <script type="text/javascript">
    var ref = document.referrer,
        currentPageURL = document.URL,
        expectedURL = "http://127.0.0.1";

    function getUrlVars(href)
    {
        var vars = [], hash;
        var hashes = href.slice(href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }

    var googleURL = ref.match(/^https?:\/\/([^\/]+\.)?google\.com(\/|$)/i);
    if ((googleURL && (currentPageURL == expectedURL)) {
        //do stuff.
    }
    </script>
4

1 回答 1

2

好吧,getUrlVars似乎并没有在任何地方使用,但是如果您需要请求参数,您可以使用 获取它们${RequestParameters['test']},引用者和当前 url 不可用,因此您需要将它们从后端代码发送到模板引擎。那么那个条件只是一个普通的<#if $referrerFromJava?matches("^https?:\/\/([^\/]+\.)?google\.com(\/|$)">. 但是,如果您将所有这些都转移到服务器上,只需在后端代码中执行并将变量发送到 ftl,就像${isFromGoogle}

于 2013-04-12T09:06:29.553 回答