Я хочу собрать url (var name is 'url) веб-страницы в переменную в расширении chrome вместе с несколькими пользовательскими вводами в текстовых вводах и отправить ее на удаленный php-скрипт для обработки в sql база данных. Я использую AJAX для подключения к удаленному серверу. Popup.html содержит простую форму для пользовательского интерфейса, а popup.js собирает переменные и делает соединение AJAX. Если я использую url = document.location.href, я получаю URL-адрес popup.html, а не URL-адрес страницы, который я хочу обработать. Я попытался использовать chrome.tabs.query(), чтобы получить url lastFocusedWindow - скрипт ниже. Ничего не произошло! Похоже, что было бы просто получить lastFocusedWindow url, но это приводит к сбою скрипта. Функция manifest.json устанавливает «вкладки», https://ajax.googleapis.com/ и IP-адрес удаленного сервера (в настоящее время в локальной сети) в разрешениях. В popup.html есть интерфейс для описания и некоторые теги. (Кстати ответ также не работает, но на данный момент я не против!)Почему это хромовое расширение не работает?
//declare variables to be used globally
var url;
// Get the HTTP Object
function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
// Change the value of the outputText field THIS PART IS NOT WORKING YET
function setOutput(){
if(httpObject.readyState == 4){
//document.getElementById('outputText').value = httpObject.responseText;
"Bookmark added to db" = httpObject.responseText; // does this work?
}
}
//put URL tab function here
chrome.tabs.query(
{"active": true, "lastFocusedWindow": true},
function (tabs)
{
var url = tabs[0].url; //may need to put 'var' in front of 'url'
}
);
// Implement business logic
function doWork(){
httpObject = getHTTPObject();
if (httpObject != null) {
//get url? THIS IS OUTSTANDING - url defined from chrome.tabs.query?
description = document.getElementById('description').value;
tag1 = document.getElementById('tag1').value;
tag2 = document.getElementById('tag2').value;
tag3 = document.getElementById('tag3').value;
tag4 = document.getElementById('tag4').value;
httpObject.open("GET", "http://192.168.1.90/working/ajax.php?url="+url+"&description="+description+"&tag1="+tag1+"&tag2="+tag2+"&tag3="+tag3+"&tag4="+tag4, true);
httpObject.send(null);
httpObject.onreadystatechange = setOutput(); //THIS PART IS NOT WORKING
finalString = httpObject.responseText; //NOT WORKING
return finalString; //not working
} //close if
} //close doWork function
var httpObject = null;
var url = null;
var description = null;
var tag1 = null;
var tag2 = null;
var tag3 = null;
var tag4 = null;
// listens for button click on popup.html
document.addEventListener('DOMContentLoaded', function() {
document.querySelector('button').addEventListener('click', doWork);
});