Другие ответы указывают, что это должно быть (domain == face)
, а - ошибка.
Однако, это не то, что помешало скрипту работать так, как вы ожидали.
Основная проблема заключается в том, что пользовательские скрипты Chrome не могут использовать JS, определенный на целевой странице. Вы должны ввести свой код на страницу, например так:
function functionToInject () {
function myCode () {
/*--- This is where you put everything you want to do that
requires use of the page's javascript.
*/
var face = "facebook.com"
var domain = document.domain
if (domain == face)
{
Chat.openTab ("sam.sebastian1", "Seb");
}
}
myCode ();
}
function addJS_Node (text, s_URL) {
var scriptNode = document.createElement ('script');
scriptNode.type = "text/javascript";
if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;
var targ = document.getElementsByTagName('head')[0]
|| document.body || document.documentElement;
targ.appendChild (scriptNode);
}
addJS_Node ( '(' + functionToInject.toString() + ')()' );
Это был основной ответ. Однако , поскольку это Facebook, все немного сложнее.
- Facebook загружает много iFrames, и скрипт запускается на многих из них.
- Объект
Chat
загружается не сразу.
Чтобы обойти эти препятствия, мы устанавливаем таймер, который не пытается выполнить наш код, пока ресурс не будет найден.
Вот так:
function functionToInject () {
function myCode () {
/*--- This is where you put everything you want to do that
requires use of the page's javascript.
*/
var face = "facebook.com"
var domain = document.domain
if (domain == face)
{
Chat.openTab ("sam.sebastian1", "Seb");
}
}
var waitForKeyElements = setInterval (checkForElement, 500);
function checkForElement () {
if (typeof Chat != "undefined" ) {
clearInterval (waitForKeyElements);
myCode ();
}
}
}
function addJS_Node (text, s_URL) {
var scriptNode = document.createElement ('script');
scriptNode.type = "text/javascript";
if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;
var targ = document.getElementsByTagName('head')[0]
|| document.body || document.documentElement;
targ.appendChild (scriptNode);
}
addJS_Node ( '(' + functionToInject.toString() + ')()' );