我有这个扩展功能,似乎没有造成任何问题。但是一旦我尝试使用它,我收到一条错误消息:对象不支持属性或方法'n2name'
插件代码中未报告任何错误(下面粘贴的代码段用于参考,最后带有指向完整文件的链接)。
有谁知道为什么这不起作用?
注意:我正在尝试解决这个开源项目的问题:https://github.com/n2cms/n2cms/issues/279并且可能有更多关于该Github错误的有用细节。
很抱歉,如果这个问题太模糊,而且代码片段很长(大部分可能都不相关)。但是真的很感激任何帮助
/**
* n2name 0.2
*/
(function($) {
/* some code removed for brevity */
$.fn.n2name = function(options) {
var invokeUpdateName = function(){
updateName(options.titleId, options.nameId, options.whitespaceReplacement, options.toLower, options.replacements, options.keepUpdatedBoxId);
};
if(options.keepUpdatedBoxId){
/* more code removed for brevity */
}
};
})(jQuery);;
链接到jquery.n2name.js完整来源,如果上面的代码段没用:https://github.com/n2cms/n2cms/blob/4469580fcdd9c91f7576f07c3d2c8a4479ed6ce9/src/Mvc/MvcTemplates/N2/Resources/Js/plugins/jquery.n2name.js
答案 0 :(得分:1)
错误“对象不支持属性或方法<name>
”(IE)和“<name>
不是函数”(Chrome)通常意味着您的jQuery插件未成功加载之前它被称为。
这可能是由于请求失败(检查开发工具的“网络”标签),忘记/错放了插件的script
标记或script
标记defer
/ {{1} }属性。另一个可能的原因是插件的脚本包含语法错误(在这种情况下请查看开发工具的控制台选项卡)。
在同一页面中有多个版本的jQuery(如OP的链接GH问题中所述)是另一种可能性,因为async
样板中包含的插件只被添加到{{1}引用的jQuery对象中在插件脚本加载时。
在这种特定情况下,OP在从VS内部的localhost加载插件时遇到了问题。
我见过类似的问题,我只是补充说,从(function(){}(jQuery));
URI方案加载文件时,使用无协议的URL(例如:window.jQuery
)是无效的。这是因为无协议URL“继承”了父文档中使用的协议,//somecdn.com/library.js
不是协议。如果您是从本地服务器加载它(例如file:///
中通过file:///
提供的父文档),则无协议网址应该可以正常工作。