Я новичок в веб-разработке и пытаюсь правильно обновить всплывающее окно, которое я создаю после публикации запроса. То, как я это делаю, кажется слишком запутанным. По сути, у меня есть расширение chrome, которое в определенный момент отправляет запрос в мою базу данных и возвращает URL-адрес. Затем я хочу открыть всплывающее окно и получить URL-адрес, который моя база данных только что доставила во всплывающем окне. Это кажется простым, и я уверен, что мой текущий дизайн чрезмерно усложняет его: в контенте. js я вызываю функцию doWork:
function doWork(itemName, itemPrice) {
var items = [{'itemName': itemName, 'price': itemPrice}]
// ajax the JSON to the server
$.post('https:my/url/receiver', JSON.stringify(items),
function(data, status){
chrome.runtime.sendMessage({type:'open_deals_page', url:data.url})
});
}
Это получено фоном . js в следующей функции:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.type === 'open_deals_page') {
chrome.tabs.create({
url: chrome.extension.getURL('popup.html'),
active: false
}, function(tab) {
chrome.windows.create({
tabId: tab.id,
type: 'panel',
height: 200, width:200,
focused: true,
// incognito, top, left, ...
});
adjust_window(request.url)
});
}
});
, после чего в идеальном мире функция Adjust_Window изменит элемент html с id = 'itemUrl' во всплывающем окне. html ниже:
<!DOCTYPE html><html><head><title>Dialog test</title></head><body>
</title>There is a better deal elsewhere on the web @</title>
<a href="giggle.com" id='itemUrl'>the url you requested</a>
</html>
Излишне говорить, что я не уверен, как настроить функцию Adjust_Window или я вызываю ее в нужном месте. Я пробовал различные jquery селекторы и продолжал получать нулевые значения. Я также запутался в том, как убедиться, что у меня есть доступ к всплывающему окну c, которое я только что открыл. спасибо!