Я пытаюсь создать bookmarklet, который разбирает страницу и посылает результаты в googledocs электронную таблицу через форму, которую я определил.
Соответствующая часть сценария:
var form = document.createElement("form");
form.action = "http://spreadsheets.google.com/formResponse?formkey=Fd0SHgwQ3YwSFd5UHZpM1QxMlNOdlE6MA&ifq";
form.method = "POST";
form.id="ss-form";
form.innerHTML = ["", "", "", ].join("");
form.submit();
alert(form.innerHTML);
//прибыль:
Ничто не экономится к форме через bookmarklet - какой-либо способ захватить ответ Google в кодексе моего bookmarklet? (fwiw, я ввел jQuery через jQueryify),
Править:
Чистая группа поджигателя не слышит ни одной деятельности, вызванной bookmarklet - Как насчет я приближаюсь к этому из метода viewform goolgle вместо formresponse.
Форма, которую я пытаюсь представить, расположена в:
http://spreadsheets.google.com/viewform?hl=en&formkey=dFd0SHgwQ3YwSFd5UHZpM1QxMlNOdlE6MA
Как я могу пойти о впрыскивании значений сценария в ту форму и затем утверждая, что - снова... с помощью сценария в bookmarklet, который был бы вызван в то время как на разбираемой странице?
если вы уже используете jquery, попробуйте отправить форму через ajax ($.ajax). Вы можете настроить функцию успеха, которая будет вызвана, когда Google отправит ответ обратно.
Кроме того, вы должны быть в состоянии использовать подсказку, чтобы просмотреть ответ Google отправляет обратно.
В частности, я подумал, что вы могли бы попробовать что-то вроде:
$.ajax({
url: "http://spreadsheets.google.com/formResponse",
data: { formkey: "Fd0SHgwQ3YwSFd5UHZpM1QxMlNOdlE6MA&ifq", "entry.0.single": orderDate, "entry.2.single": email, "entry.3.single": customerID },
type: "POST",
dataType: "xml",
success: function(data, textStatus, XMLHttpRequest) {
console.log("success");
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("error");
console.log(textStatus);
},
})
Я думал, что могу добавить к этому несколько лакомых кусочков, но оказалось, что они НЕ решают проблему.
Я получаю ту же ошибку «Метод 405 запрещен»…
У меня нет полного ответа, но я смог заставить его работать с помощью Curl:
curl http://spreadsheets.google.com/formResponse?formkey=dFpVLTVFY2t5dWdoNTZpNERwWDRxX2c6MQ&ifq --data entry.0.single=eric --data entry.1.single=pugh
Также я смог заставить его работать через Ajax, используя прототип, но ТОЛЬКО в Safari.
В Firefox я тоже получаю тот же 405 Method not allowed. Вот мой скрипт:
function vote_for_synonym(word1, word2){
word1 = encodeURIComponent(word1);
word2 = encodeURIComponent(word2);
$req = new Ajax.Request("http://spreadsheets.google.com/formResponse?formkey=dFpVLTVFY2t5dWdoNTZpNERwWDRxX2c6MQ", {
method: 'post',
contentType: 'application/x-www-form-urlencoded',
onCreate: function(){
Element.show('systemWorking');
},
onSuccess: function() {
Element.show('thanks');
Element.hide('systemWorking')
},
onFailure: function() {
Element.show('error');
}
});
}
Также у меня никогда не вызывается onFailure, только onSuccess.