Javascript 书签中的新标签 POST
New tab in Javascript bookmarklet with POST
希望每个人都过得愉快!我试图创建一个小书签,它可以在 POST headers 的页面上自动打开 links,但只有最后一个 link 被扩展到新页面中。有什么原因吗?(如果是这样,我该如何解决?)
javascript: (function() {
function openWindowWithPost(url, data) {
var form = document.createElement("form");
form.target = "_blank";
form.method = "POST";
form.action = url;
form.style.display = "none";
for (var key in data) {
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = data[key];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
var els = document.getElementsByTagName("a");
for (var i = 0, l = els.length; i < l; i++) {
var el = els[i];
console.log(typeof el.href);
console.log(el.href);
if (el.href.startsWith('example.com')) {
console.log(el.href.slice(39));
openWindowWithPost("example.php", {
id: el.href.slice(39),
pdf: "-"
});
}
}
})();
谢谢!
您的 JavaScript 代码运行起来就好像它是页面中的代码一样(您可能知道),两者都有其特权 和 其限制。
浏览器不允许 JavaScript 页面中的代码打开无限数量的 windows,因为当他们过去允许这样做时,它被恶意网站滥用了。因此,当页面上的代码试图这样做时,浏览器会阻止它。 它如何 阻止它的具体细节以及它允许事情发生的程度是特定于浏览器的。
您可能需要为每个要打开的 window 设置一个用户事件(例如,重复触发小书签,并让小书签一次执行一个 link)。
希望每个人都过得愉快!我试图创建一个小书签,它可以在 POST headers 的页面上自动打开 links,但只有最后一个 link 被扩展到新页面中。有什么原因吗?(如果是这样,我该如何解决?)
javascript: (function() {
function openWindowWithPost(url, data) {
var form = document.createElement("form");
form.target = "_blank";
form.method = "POST";
form.action = url;
form.style.display = "none";
for (var key in data) {
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = data[key];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
var els = document.getElementsByTagName("a");
for (var i = 0, l = els.length; i < l; i++) {
var el = els[i];
console.log(typeof el.href);
console.log(el.href);
if (el.href.startsWith('example.com')) {
console.log(el.href.slice(39));
openWindowWithPost("example.php", {
id: el.href.slice(39),
pdf: "-"
});
}
}
})();
谢谢!
您的 JavaScript 代码运行起来就好像它是页面中的代码一样(您可能知道),两者都有其特权 和 其限制。
浏览器不允许 JavaScript 页面中的代码打开无限数量的 windows,因为当他们过去允许这样做时,它被恶意网站滥用了。因此,当页面上的代码试图这样做时,浏览器会阻止它。 它如何 阻止它的具体细节以及它允许事情发生的程度是特定于浏览器的。
您可能需要为每个要打开的 window 设置一个用户事件(例如,重复触发小书签,并让小书签一次执行一个 link)。