Я сейчас работаю над расширением Chrome
, но я сталкиваюсь с проблемами разрешения/безопасности. У меня есть файл шаблона HTML
, который я вставляю в плавающий iframe
на определенных веб-страницах. У меня есть определенная информация, полученная от AJAX
/cookies, которую я хочу вставить в шаблон. Когда я делаю это, я встретил с ошибкой:Изменение элементов iframe с локальным источником с расширением Chrome
Некоторые соответствующий код:
$(this).after('<div id=\"flowframe\"><iframe src=\"'+chrome.extension.getURL('hoverwindow.html')+'\"></iframe></div>');
$('iframe').contents().find('#description').html(data.description);
Вторая строка бросает ошибку:
Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement'
Blocked a frame with origin "http://ugradcalendar.uwaterloo.ca" from accessing a frame with origin "chrome-extension://kdjcjbijngfephllebpnahpodnbcnhlo".
The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "chrome-extension". Protocols must match.
Я думаю, что мой манифест настроен должным образом , но я не совсем уверен:
...
"web_accessible_resources": ["loading.gif", "hoverwindow.html"],
"content_scripts": [
{
"matches": ["http://ugradcalendar.uwaterloo.ca/*"],
"css": ["extension-styling.css"],
"js": ["jquery-1.11.3.js","js.cookie.js","script.js"],
"all_frames": true
}
],
"permissions": [
"activeTab",
"cookies",
"http://uwflow.com/",
"https://uwflow.com/",
"http://ugradcalendar.uwaterloo.ca/",
"https://ugradcalendar.uwaterloo.ca/"
]
Расширение chrome позволяет вам получить доступ к каждому кадру, он не позволяет каждому кадру обращаться друг к другу, эти ограничения все еще подпадают под типичные требования браузера. Попытайтесь найти postmessage для решения для обмена данными между кадрами. – Brian