Javascript - Node.js требуют ('ttapi') не работает из букмарклет - PullRequest
0 голосов
/ 27 ноября 2011

Я пытаюсь написать бота для turntable.fm, используя API alaingilbert (https://github.com/alaingilbert/Turntable-API),, который использует node.js. Я никогда раньше не писал ни одной строки javascript, поэтому я не уверен, что получаю здесь не так.

Вот мой код:

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);

Я запускаю сценарий из букмарклета на проигрывателе. Я не совсем уверен, как получить хорошие отладочные сообщения из javascript, поэтому я отлаживаю, перемещая container.appendChild(obj) вниз с каждой строкой кода. Перестает отображаться, когда скрипт перестает работать

1 Ответ

2 голосов
/ 27 ноября 2011

Это звучит , как будто вы пытаетесь запустить код node.js в браузере. Если это правильно, то это не сработает, потому что require - это функция, специфичная для узла. Node.js не работает в браузере; это альтернативная среда выполнения для javascript, в которой такие вещи, как turntable.fm работают на вместо в браузере.

Если вы хотите что-то написать с помощью букмарклета, вы сможете использовать только то, что доступно через браузер - то есть то, что вы можете получить, когда перейдете на turntable.fm, откроете консоль javascript и начните вводить текст вещи в. Это обычно состоит из window и document, и любых библиотек, которые использует turntable.fm. Например, если они используют jquery, вы можете получить к нему доступ с помощью $.

Редактировать: Также, если вы используете Firefox, ищите расширение 'firebug'. Если вам повезет (или вы используете Chrome), ваш браузер (или расширение, такое как firebug) предоставит вам console.log, который полезен для отладки.

О, и вот руководство: https://developer.mozilla.org/en-US/docs Вы захотите прочитать его.

...