如何在Drupal 7中全局使用javascript函数。
我的javascript文件设置如下,并使用drupal_add_js()添加:
(function($) {
function add_if_country_is_not_usa() {
// Check what country it is
// Update text, image, etc.. of a block.
}
});
在我的块WYSIWIG中,我添加了以下代码(我在WYSIWIG中添加它的原因是因为我想在页面完全呈现之前更新它):
<script type="text/javascript">
add_if_country_is_not_usa();
</script>
但是我收到以下错误: 未捕获的ReferenceError:未定义add_if_country_is_not_usa (匿名函数)
我读过有关向Drupal行为添加函数的内容,但这些内容在文档就绪时发生。我想在显示块后立即运行该函数。
有什么想法吗?
答案 0 :(得分:1)
在全局范围内定义,或者如下所示:
(function($) {
function add_if_country_is_not_usa() {
// Check what country it is
// Update text, image, etc.. of a block.
}
// set as a property of the global object `window`
window.add_if_country_is_not_usa = add_if_country_is_not_usa;
});
答案 1 :(得分:0)
不确定这是否是最佳方式,但我最终能够使用命名空间使其工作。我从我的块中调用myGlobalObject.add_if_country_is_not_usa()并且它现在可以正常工作。
var myGlobalObject = mySingleGlobalObject || { 'country': {} };
(function ($) {
myGlobalObject.country = '';
myGlobalObject.add_if_country_is_not_usa = function() {
// Check what country it is
// myGlobalObject.country = 'US';
}
})(jQuery);