javascript - results.shift 不是函数 : firefox extension

标签 javascript firefox-addon

我在 Firefox JS 扩展中编写了这段代码

var results = gBrowser.contentDocument.getElementsByClassName("b-serp-item__title-link");

alert(results.length);
var countToDelete = results.length - 10;
alert(countToDelete);
if (countToDelete > 0)
{
    for (var i = 0; i < countToDelete; i++);
    {
        alert("I prepare");            
        results.shift();
        alert("I done");
    }
}
alert("succ");

我得到了这个输出

结果.length=12 删除计数=2 (我准备)

而且...仅此而已 results.shift() 有问题; 我查看了 Firefox 错误控制台,发现了这个

“results.shift 不是函数”

为什么? shift是js函数吗? 当我尝试在 Firefox 控制台中运行此代码时,我再次遇到此错误

怎么了?

我的 Firefox 版本是 4。 测试的网址是http://yandex.ru/yandsearch?text=%D0%BE%D0%B1%D0%BE%D0%B9%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BB%D0%B5%D0%B9+%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C&lr=37

最佳答案

这会将您的nodelist转换为真正的Array,它具有可用的shift方法:

var results = Array.prototype.slice.call(
                gBrowser
                   .contentDocument
                   .getElementsByClassName("b-serp-item__title-link")
              );

关于javascript - results.shift 不是函数 : firefox extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5786617/

相关文章:

javascript - 使用 JavaScript 后台脚本关闭窗口? (火狐扩展)

php - 在 JavaScript 函数中使用 FORM POST

javascript - FlaskWTF 如何向 Vue 前端发送 CSRF token

javascript - Firefox css3 动画

javascript - CSS/Jquery - 在移动设备/选项卡上查看时的导航下拉菜单

firefox-addon - 开始使用 firefox 附加组件...... SDK 是正确的选择吗?

javascript - 从 firefox 插件中的本地音频文件解析 id3 数据

firefox - 从cookie中获取主机

javascript - 重新渲染之前最初显示的登录页面 - Reactjs

javascript - Firefox 插件 - `this` 在同一对象的一种方法中有效,但在另一种方法中失败