未捕获的类型错误:对象#<HTMLDivElement>没有方法'addPanel'
Uncaught TypeError: Object #<HTMLDivElement> has no method 'addPanel'
我正在尝试实现一个几乎跨浏览器的书签功能,并在SO上发现了这一点:如何添加一个";添加到收藏夹";我网站上的按钮或链接?
现在,我正在使用@PHPst的答案。。
<script type="text/javascript">
$(function() {
$("#bookmarkme").click(function() {
if (window.sidebar) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(location.href,document.title,"");
} else if( /*@cc_on!@*/false) { // IE Favorite
window.external.AddFavorite(location.href,document.title);
} else if(window.opera && window.print) { // Opera Hotlist
this.title=document.title;
return true;
} else { // webkit - safari/chrome
alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
}
});
});
</script>
它在一个普通的网页上工作。。如下所示:http://jsfiddle.net/GXas4/
但是当我在wordpress模板中使用它时,在chrome中我会得到一个js错误,如下所示:
Uncaught TypeError: Object #<HTMLDivElement> has no method 'addPanel'
它不会在firefox的控制台上返回错误,但也不会执行任何操作。
SO上的很多帖子都有这样的问题("Uncaught TypeError:Object#没有方法"),但似乎没有什么能给我指明正确的方向。
有人知道为什么会发生这种事吗?
您使用的WordPress主题可能有一个id=边栏的元素。
除非显式定义了具有相同名称的全局变量,否则将为每个具有id的元素创建一个全局变量。
因此,第一次测试是不可靠的。例如,即使在Chrome中,在stackoverflow页面上评估window.sidebar
也是正确的,因为网站使用的元素具有这样的id。
您应该使用wp_enqueue_script
(文档)
在该脚本之前可能不会调用您的依赖项。如果您将脚本排入队列,则可以使用首先加载依赖项
wp_enqueue_script( $handle, $path to file, array( jquery ));`
由于我在数组中放置了jQuery,它现在将在脚本之前加载jQuery。
addPanel自v.23起从Firefox中删除。但是您可以使用标记:
<a href="http://stackoverflow.com" title="Stack Overflow" rel="sidebar">Bookmark me</a>
相关文章:
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- Ajax文件加载和<输入>文件加载
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 链接所有<a>Meteor
- 在<输入类型=“;文件“/>
- Div根据<选择>菜单
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过点击<李>在jQuery中
- 正在检测导航到<a name=“;最新主题”></a>
- 如何更改<选择>使用angularJS从控制器获得的值
- 通过具有IE<11
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'偏移'
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'addPanel'
- MooTools Slider控件,TypeError:Object#<HTMLDivElement>没有方
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'绑定'
- Mootools元素>对象# & lt; HTMLDivElement>没有方法'addEvent'
- 对象# & lt; HTMLDivElement>没有方法'remove'