gpt4 book ai didi

javascript - 在 Rails 中禁用 Javascript 变量重命名

转载 作者:行者123 更新时间:2023-11-29 15:44:40 25 4
gpt4 key购买 nike

我正在尝试在我的应用中使用 tripleflap.js。我的观点是调用函数:

<script type='text/javascript' charset='utf-8'>
TwitterBird();
</script>

因此,在 application.js 中:

function TwitterBird() {
var twitterAccount = 'ulmicru';
var showTweet = false;
var birdSprite='http://127.0.0.1/birdsprite.png';
tripleflapInit();
}

然后我尝试运行它,Javascript 调试器告诉我:

Uncaught ReferenceError: birdSprite is not defined 

在/public/assets/中的预编译 application.js 中,我在看这个:

function TwitterBird()
{var e="ulmicru",t=!1,n="http://127.0.0.1/birdsprite.png";tripleflapInit()}

Rails 预编译器似乎重命名了变量,而 tripleflap.js 找不到它们。

是否可以禁用 Assets 中的变量重命名?

最佳答案

尝试将变量定义移到函数外,或者只是删除它们前面的 var,如下所示:

function TwitterBird() {
twitterAccount = 'ulmicru';
showTweet = false;
birdSprite='http://127.0.0.1/birdsprite.png';
tripleflapInit();
}

我用谷歌搜索了 tripleflapInit 脚本并查看了它。基本上它直接在窗口上定义了一堆配置变量,并希望您覆盖它们;总而言之,这是一个非常笨拙的脚本,但这不是重点。

因为您正在使用 var 的函数内部定义 birdSprite,所以您实际上是在为该函数定义一个新的局部变量。即使它没有被缩小器重命名,窗口定义的 tripleflapInit 仍然不会使用它,而是查看窗口上定义的变量。

我不确定您为什么会收到未定义 birdSprite 的错误,但编译器可能会混淆并删除它,认为它未被使用。

关于javascript - 在 Rails 中禁用 Javascript 变量重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546339/

25 4 0
文章推荐: Mysql 左连接右表中的条件
文章推荐: javascript - 选择html表的一些行,并在单击链接时将所选行的一列的值发送到另一个php页面
文章推荐: mysql - 将 2 个 SQL 表与特定条件进行匹配
文章推荐: javascript - 在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com