“$.md5 不是函数”之谜
The mystery of '$.md5 is not a function'
我有一个使用 jQuery.MD5 库的 js 代码。它在我的服务器上完美运行:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://example.com/static/js/jquery.md5.js"></script>
</head>
<body>
<script>
// my code goes here (declaring variables and functions)
var code = $.md5('mystring');
// and a little more code
</script>
</body>
但后来我将其上传到网络应用程序(我无法控制),使其看起来像这样并将其放入 iframe 中:
<head>
<script>
// some extra variables are declared here
// double-checked that nothing here can break my code
</script>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://example.com/static/js/jquery.md5.js"></script>
<script>
// some code
var code = $.md5('mystring');
// some code
</script>
</body>
这段代码开始给我 $.md5 is not a function
错误。奇怪的事情。尝试清除缓存,将 jquery.md5.js 代码直接放入我的,但没有任何效果。
请注意所有代码都在我的机器上运行,所以我的 JS 一定没有问题。
更新:有问题的代码行为似乎是不可预测的,这意味着有时它可以正常工作而无需更改。
有什么问题吗?
嗯...有点尴尬,但问题出在jQuery。我包含在 iframe 中的那个与页面中包含的那个冲突。不知何故,这导致 "hiding" 我的 $.md5 函数在其代码结束后。
是的,我知道,很明显 jQuery 可能会导致问题。
如果你想使用 jQuery md5 函数你应该在你的项目中导入 jquery.md5.js 文件。
步数-
- 下载 jquery.md5.js 文件
将此文件复制到您的源文件夹中。 (例如:assert/theme/js)
将该 js 文件导入您的项目。
(例如:<script src="<?= base_url(); ?>/public/assert/theme/js/jquery.md5.js"></script>
)
就是这样!你完成了!
我有一个使用 jQuery.MD5 库的 js 代码。它在我的服务器上完美运行:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://example.com/static/js/jquery.md5.js"></script>
</head>
<body>
<script>
// my code goes here (declaring variables and functions)
var code = $.md5('mystring');
// and a little more code
</script>
</body>
但后来我将其上传到网络应用程序(我无法控制),使其看起来像这样并将其放入 iframe 中:
<head>
<script>
// some extra variables are declared here
// double-checked that nothing here can break my code
</script>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://example.com/static/js/jquery.md5.js"></script>
<script>
// some code
var code = $.md5('mystring');
// some code
</script>
</body>
这段代码开始给我 $.md5 is not a function
错误。奇怪的事情。尝试清除缓存,将 jquery.md5.js 代码直接放入我的,但没有任何效果。
请注意所有代码都在我的机器上运行,所以我的 JS 一定没有问题。
更新:有问题的代码行为似乎是不可预测的,这意味着有时它可以正常工作而无需更改。
有什么问题吗?
嗯...有点尴尬,但问题出在jQuery。我包含在 iframe 中的那个与页面中包含的那个冲突。不知何故,这导致 "hiding" 我的 $.md5 函数在其代码结束后。
是的,我知道,很明显 jQuery 可能会导致问题。
如果你想使用 jQuery md5 函数你应该在你的项目中导入 jquery.md5.js 文件。
步数-
- 下载 jquery.md5.js 文件
将此文件复制到您的源文件夹中。 (例如:assert/theme/js)
将该 js 文件导入您的项目。 (例如:
<script src="<?= base_url(); ?>/public/assert/theme/js/jquery.md5.js"></script>
)
就是这样!你完成了!