Работа с несколькими файлами HTML в расширении Chrome - PullRequest
1 голос
/ 15 февраля 2011

У меня следующий вопрос: я пишу расширение Chrome, которое работает с контекстным меню поверх выделения текста.одна из вещей, которую я хочу сделать, - это создать новую вкладку, основанную на одном из моих HTML-файлов, которые я создаю динамически, используя данные, полученные при выделении текста. Как я могу общаться между моим файлом JavaScript, который подключен кмой background.html и мой другой html-файл, чтобы добраться до его DOM и чередовать его содержимое?

my manifest.json:

{
  "name": "My flickr Extension",
  "version": "1.0",
  "description": "The first extension that I made.",
  "icons": {
    "16": "icon.png"},
  "background_page":"background.html",
  "permissions": ["tabs",
    "http://api.flickr.com/","contextMenus","http://*/*","https://*/*"  
  ]
}

my background.html:

<script src="ext.js"></script>

my ext.js main functions:
function searchSelection(info,tab){
    var updated=makeNewString(info.selectionText);
    var xhReq = new XMLHttpRequest();
    xhReq.open(
    "GET",
    "http://api.flickr.com/services/rest/?method=flickr.photos.search&text="+updated+"&api_key=a0a60c4e0ed00af8d70800b0987cae70&content_type=1&sort=relevance",
    true);
    xhReq.onreadystatechange = function () {
        if (xhReq.readyState == 4) {
            if (xhReq.status == 200) {

var photos = xhReq.responseXML.getElementsByTagName("photo");

var urlOfNew=chrome.extension.getURL('results.html');//this is me getting the link of the other html page that i want to update

    //here I want to manipulate the results.html DOM like adding images depending on the photos and other stuff

                chrome.tabs.create({"selected":true,"url":urlOfNew});
            }
        };
    };
    xhReq.send(null);
}





var context="selection";
var id = chrome.contextMenus.create({"title": "search Flickr", "contexts":[context],"onclick":searchSelection});

1 Ответ

1 голос
/ 17 февраля 2011

Взгляните на Message Passing, http://code.google.com/chrome/extensions/messaging.html,, в котором есть подробные примеры отправки сообщений из Content Script на страницу расширения.

Поскольку вы просто общаетесь на одной и той же странице (фоновой странице), почему у вас возникают проблемы? Вы можете просто использовать обычный JavaScript для передачи переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...