OK, also habe ich es mit einer Website zu tun, die ASP.NET Web Forms verwendet. Es enthält viele Hyperlinks, die eine href der Form javascript:__doPostBack(...
enthalten, die unglaublich nervig ist, weil Sie nicht auf den Hyperlink klicken können, um die Seite in einem neuen Fenster zu öffnen, wie Sie es mit einem gewöhnlichen Hyperlink tun würden. Ich versuche, ein Benutzer-Skript zu erstellen, das das beheben wird. Bisher bin ich auf dieses Problem gekommen, das größtenteils funktioniert. Der einzige Nachteil, auf den ich gestoßen bin, ist der, dass wenn ich einen Link klicke, um ein neues Fenster zu öffnen, und dann versuche, einen anderen Postback-Link auf der Originalseite zu klicken, bringt es mich manchmal auf die falsche Seite.Wie aktiviert man das mittlere Klicken von Postback-Hyperlinks?
Kennt jemand einen besseren Weg, damit umzugehen?
let form = document.querySelector('form');
let links = document.querySelectorAll('a');
for (let link of links) {
if (link.href.startsWith('javascript:')) {
link.addEventListener('click', function(e) {
if (e.button === 1) {
form.setAttribute('target', '_blank');
eval(this.href.slice(11));
form.removeAttribute('target');
e.preventDefault();
}
});
}
}
1. Leider kann ich keinen Link zur Verfügung stellen, da die betreffende Seite nicht öffentlich ist. 2. Ich weiß nichts über ASP.NET Web Forms, aber ich denke eine Einschränkung ist, dass Sie auf ein Formular beschränkt sind (die gesamte Seite ist ein großes Formular). Außerdem gibt es (leider) keine AJAX. –
Plain Vanilla asp.net hat ein Standard-One-Form-Schema. Aber die Leute haben das jahrelang [gearbeitet] (http://stackoverflow.com/questions/1663355/asp-net-more-than-1-form). Es ist eine schlechte Annahme, in irgendeinen Code einzubauen. –
Danke für die Hilfe. Ich denke, es ist definitiv ein Problem mit dem Staat. Der Aufruf von 'window.location.reload()' auf der übergeordneten Seite "behebt" das Problem, dass einige Links nicht mehr auf die richtige Seite verweisen, sondern dass die Seite jedes Mal aktualisiert wird, wenn Sie auf einen Link klicken. Meine Abhilfe besteht darin, ein neues Fenster zu öffnen und das DOM vom Patent her zu klonen. Dann finde ich den Link, der in der Elternmitte geklickt wurde und simuliere einen Linksklick darauf. Sehr hackisch, aber das scheint zu funktionieren. –