有没有办法隐藏通过事件侦听器传递的 'global' 变量的值,同时仍然让脚本 运行?

Is there a way to hide the value of a 'global' variable passed through Event listener, while still letting the script run?

我正在 OctoberCMS 上创建一个插件,用户可以在插件设置菜单的字段中输入代码。我已将此输入保存到一个全局变量中,并将其粘贴到页面的模板上。

在Plugin.php中,将其存入全局变量的代码:

 public function boot()
{
    Event::listen('cms.page.beforeDisplay', function($controller, $url, $page) {

        $settings = Settings::instance();

        $script = $settings->script; 

        $controller->vars['script'] = $script;
    });
}

在template.htm中,调用标签中的变量:

{{ script | raw }}

然后在检查页面时显示输入的代码。

我的问题是,有没有办法隐藏变量的实际值,但脚本仍然 运行?这样任何查看该网站的用户都无法 'inspect' 它并查看脚本是什么。谢谢

如果您想像 Google Analytics 脚本那样做,那么您需要制作脚本文件。

your-javascript-file.js now host it anywhere on other domain or on same site and copy its url.

现在在你的设置中 $settings->script 这个变量,你可以从后端设置中设置值,比如。

<script src="https://your_site/something/your-javascript-file.js"></script>

所以在您的网页中它会显示类似这样的内容 ^ 但不是实际代码。用户需要再深入一步才能看到实际代码。但是 in your web-page's source code only this single line will appear not js code it self.

如有疑问请评论。