2013-06-03 2 views
1

В настоящее время я начал работать с расширениями google chrome. В настоящее время мое расширение встраивает некоторый javascript на каждый сайт, который создает боковую панель с некоторыми функциями (какие функции на самом деле не имеют значения). Все работает, пока javascript включен для этих сайтов, но перестает работать, когда он заблокирован. Я ввожу код через chrome.tabs.executeScript, и он явно загружается при каждом запуске страниц (так как создается боковая панель), но в это время это просто простой div (так как я сказал, ни одна из функций не работает). Я пытался добавить тег раньше, что просто ничего не делает (так что боковая панель не создается), когда javascript заблокирован .. так что, очевидно, есть разница, но не работает для меня.Храните расширение google chrome ContentScripts, работающие во время блокировки javascript

Насколько я понимаю, как работают контент-скрипты, они должны запускаться в изолированном мире и поэтому не должны выполняться параметрами javascript сайтов (так как все остальные части расширений-background-страниц и все-таки продолжают работать) , Я искал в Интернете ответы, но ничего не мог найти (ну, я нашел один отчет об ошибке, который был закрыт без надлежащего ответа) по этой проблеме. Кто-нибудь знает, как держать введенный код запущенным, пока javascript сайта блокируется (например, специальные разрешения или что-то подобное), или я должен отказаться от своей идеи? Заранее спасибо!

EditII: Тем временем я протестировал некоторые скрипты и хорошо, да некоторые из них продолжают работать, даже если javascript отключен. Поскольку я изначально заявил, что мой скрипт также выполняется сначала, но не будет поддерживать его функциональность. Для лучшего понимания действительно тонкой версии того, что должно происходить. Есть ли способ держать эти функции запущенными или это безнадежно, потому что они вводятся слишком глубоко в сайт?

manifest.json

{ 
"name" : "Example", 
"version" : "1.0.1", 
"description" : "Creates a sidebar, which looses dragable() function when javascript is turned off", 

"permissions" : [ "tabs" ], 

"content_scripts" : [ 
    { 
    "matches" : [ "http://*/*" ], 
    "js" : [ "jquery.js", "jquery-ui.js", "contentscript.js" ], 
    "run_at" : "document_end", 
    "all_frames" : true 
    } 
], 
"manifest_version": 2 
} 

contentscript:

var sidebar; 

sidebar = $("<div id='example_sidebar'></div>"); 
sidebar.css({ 
    'position': 'fixed', 
    'right': '0px', 
    'top': '200px', 
    'z-index': 9999, 
    'width': '70px', 
    'height': '140px', 
    'background-color': 'blue' // Confirm it shows up 
}); 
$('body').append(sidebar); 

$(function() { 
    $("#example_sidebar").draggable(); 
}); 

$("#example_sidebar") 
.on("mouseenter", function() { 
    console.log('entered the div'); 
}) 
.on("mouseleave", function() { 
console.log('left the div'); 
}); 

$('#example_sidebar').on('click', function() { 
    console.log('clicked the div');}); 
+0

Без тестирования я также ожидал, что скрипты контента будут запущены, даже если JS отключен для этой страницы. Использует ли ваш скрипт контента (или скрипт, введенный с помощью 'executeScript') вставить тег'

Смежные вопросы