Javascript-Node.js要求(';ttapi';)不能从bookmarklet工作
我正在尝试使用alaingilbert的API为turntable.fm编写一个机器人程序(https://github.com/alaingilbert/Turntable-API),它使用node.js。我以前从来没有写过一行javascript,所以我不确定我这里出了什么错 这是我的密码:Javascript-Node.js要求(';ttapi';)不能从bookmarklet工作,javascript,node.js,bookmarklet,Javascript,Node.js,Bookmarklet,我正在尝试使用alaingilbert的API为turntable.fm编写一个机器人程序(https://github.com/alaingilbert/Turntable-API),它使用node.js。我以前从来没有写过一行javascript,所以我不确定我这里出了什么错 这是我的密码: var container = document.body; if(document.getElementById("ttapi")) { container.removeChild(docu
var container = document.body;
if(document.getElementById("ttapi")) {
container.removeChild(document.getElementById("ttapi"));
}
var obj = document.createElement("div");
obj.id = "ttapi";
obj.style.position = "absolute";
obj.style.top = "20px";
obj.style.left = "20px";
obj.style.width = "500px";
obj.style.height = "100px";
obj.style.padding = "10px";
obj.style.backgroundColor = "#fff";
obj.style.fontSize = "13px";
var auth = document.createElement("div");
auth.innerHTML = "Auth: "+turntable.user.auth;
var userid = document.createElement("div");
userid.innerHTML = "UserId: "+turntable.user.id;
for (var i in turntable) { if (turntable[i].roomId) { var rid = turntable[i].roomId; break; } }
var roomid = document.createElement("div");
roomid.innerHTML = "RoomId: "+rid;
var testLine = document.createElement("div");
testLine.innerHTML = " IM STILL WORKING";
var Bot= require('ttapi');
var AUTH = turntable.user.auth;
var USERID = turntable.user.id;
var ROOMID = rid;
obj.appendChild(auth);
obj.appendChild(userid);
obj.appendChild(roomid);
obj.appendChild(testLine);
container.appendChild(obj);
我在转盘上运行bookmarklet中的脚本。我真的不知道如何从javascript中获得好的调试消息,所以我通过将container.appendChild(obj)
与每行代码一起向下移动来进行调试。当脚本停止工作时,它将停止显示听起来好像您正试图在浏览器中运行node.js代码。如果这是正确的,那么它将不起作用,因为require是一个特定于节点的函数。Node.js不在浏览器中运行;它是javascript的另一种运行时,turntable.fm之类的东西可以在其上运行,而不是在浏览器上运行
如果您想使用bookmarklet编写内容,则只能使用浏览器提供的内容——即,当您转到turntable.fm,打开javascript控制台并开始在中键入内容时可以访问的内容。这通常包括窗口
和文档
,以及turntable.fm正在使用的任何库。例如,如果他们使用jquery,您可以使用$
访问它
编辑:此外,如果您正在使用firefox,请查找“firebug”扩展。如果幸运(或使用chrome),您的浏览器(或firebug等扩展)将为您提供console.log,这对调试非常有用
哦,这是手册:你会想看的。太好了,这正是我需要的提示。我没有意识到node.js是这样工作的,我认为它只是一个静态依赖项。我运行了我的脚本的一个编辑版本,它运行得非常好。