Я хочу сделать chrome расширение на Google Reader, и я нашел проблему. сценарий содержимого не может получить доступ к iframes. Для всех n, window.frames [n] = undefined. И у меня есть это «all_frames»: true в manifest.json. Или кто-то может сказать мне, как добавить кнопку под каждую статью. Спасибо!Хром расширение содержимого сценарий не может получить доступ к iframes
ответ
С помощью быстрого просмотра HTML-рендеринга Google Reader единственной кнопкой, которая находится в IFRAME, является кнопка Google Plus +1 - все остальные кнопки не находятся в IFRAME. Поэтому вам не нужно беспокоиться о IFRAME.
Я предполагаю, что существующие кнопки - это кнопки, которые появляются под каждой статьей: +1, Share, Email, Keep Unread, Добавить теги.
Если вы хотите добавить новую кнопку к существующим кнопкам, все, что вам нужно сделать, это перечислить DOM - в частности, классы DIV «вход-действия» и добавить новый SPAN с помощью элемента/кнопки для каждой статьи ,
Я подозреваю (но не уверен), что Reader может динамически обновлять DOM новыми статьями. Если это так, вам может потребоваться отслеживать новые статьи, добавляемые в DOM, чтобы вы могли снова добавить свою кнопку. Для этого добавьте прослушиватель событий для DOMNodeInserted - например.
document.addEventListener('DOMNodeInserted', onNodeInserted, false);
UPDATE:
Причина вы не можете увидеть ".entry-акции" класс, потому что он будет добавлен динамически.
Настоящий рабочий пример очень простой. Это будет контролировать DOM, и когда он увидит DIV-действия для входа, у которого нет нашей кнопки «.myclass» SPAN, добавит ее.
Для этого вам необходимо включить jQuery в расширение. Я использовал jquery-1.7.1.min.js в этом примере. Вам также понадобится файл значков с именем foo.png, если вы вырезаете и вставляете пример.
manifest.json
{
// Required
"name": "Foo Extension",
"version": "0.0.1",
// Recommended
"description": "A plain text description",
"icons": { "48": "foo.png" },
//"default_locale": "en",
// Pick one (or none)
"browser_action": {
"default_icon": "Foo.png", // optional
"default_title": "Foo Extension" // optional; shown in tooltip
},
"permissions": [ "http://*/", "https://*/", "tabs" ],
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["jquery-1.7.1.min.js", "content_script.js" ],
"run_at": "document_idle"
}
]
}
content_script.js
var timer;
document.addEventListener('DOMNodeInserted', onNodeInserted, false);
function onNodeInserted(e)
{
if(timer) clearTimeout(timer);
timer = setTimeout("addButtons()", 250);
}
function addButtons()
{
console.log('add buttons');
var $actions = $(".entry-actions").filter(function() {
return $(this).find('.myclass').length === 0;
});
$actions.append('<span class="myclass"><a href="javascript:alert(\'hey! Im a foo extension injected button!\');return false;">My button</a></span>');
}
Мутация События обезглавлены, вместо этого вы должны смотреть Mutation Observers теперь, heres библиотека, которая помогает с ними (никогда не пробовала это самостоятельно) .... http://code.google.com/p/mutation-summary/ – PAEz
Это ошибка ... ..... http : //code.google.com/p/chromium/issues/detail? id = 20773 ... Есть несколько обходных решений в комментариях, которые могут вам помочь. – PAEz
Я даже не могу выбрать «вход-действия» DIV с javascript, и я не знаю почему. – user1070827
- 1. Доступ к iframes из расширения для скрипта содержимого Chrome
- 2. расширение Chrome, расширение хром связи
- 3. хром расширение фон сценарий подтверждение название сообщения
- 4. не может найти хром расширение файла манифеста
- 5. Хром-расширение HTML-форма
- 6. не может установить cookies через расширение хром
- 7. CORS. Почему хром может получить доступ к моему API?
- 8. не может получить доступ к twitch DOM
- 9. Расширение Chrome Расширение содержимого Script
- 10. Расширение DIV по iframes
- 11. Невозможно загрузить сценарий содержимого хром-расширения при использовании относительного пути
- 12. Что такое сценарий содержимого и фоновый сценарий в расширении хром?
- 13. Хром Расширение Входной текст Выпуск
- 14. Сценарий загрузки тегов внутри Iframes
- 15. Может ли расширение клавиатуры IOS получить доступ к брелка?
- 16. Запустите сценарий содержимого хром-фрагмента до рисования страницы
- 17. сценарий содержимого не вставляется в расширение html page
- 18. он не может получить доступ к popup.js файл после создания расширения хром
- 19. Программно запрограммировать расширение хром хром
- 20. Может ли хром-расширение читать данные из локального хранилища?
- 21. расширение хром popup.js не работает
- 22. Хром расширение: JavaScript не выполняется
- 23. расширение хром не onMessageExternal работает
- 24. Хром не разрешает доступ к локальной камере
- 25. Расширение документа DOM для iframes
- 26. Хром расширение фокуса
- 27. отладки хром расширение
- 28. Как разместить расширение хром?
- 29. Доступ к поставщику содержимого
- 30. Простое расширение переадресации хром
Смотрите также http://stackoverflow.com/q/35571106/32453 – rogerdpack