Können Sie JQuery für eine Fensterreferenz verwenden? Ich habe folgendes ohne Glück versucht.Verwenden von JQuery für eine Fensterreferenz?
function GetDiPSWindow() {
var DiPSURL = "/DiPS/index";
var DiPSWindow = window.open("", "DiPS", "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=520,height=875");
if (DiPSWindow.location.href === "about:blank") {
DiPSWindow.location = DiPSURL;
}
return DiPSWindow;
}
function AddRecipient(field, nameId) {
// Get window
var win = GetDiPSWindow();
// Attempt 1
$(win.document).ready(function() {
var input = win.document.getElementById(field + "_Input");
input.value = nameId;
});
// Attempt 2
$(win).ready(function() {
var input = win.document.getElementById(field + "_Input");
input.value = nameId;
});
// Attempt 3
$(win).load(function() {
var input = win.document.getElementById(field + "_Input");
input.value = nameId;
});
}
Mache ich einen einfachen Fehler?
BEARBEITEN Aus irgendeinem Grund ist win.document.readyState
"vollständig". Nicht sicher, ob das einen Unterschied macht.
Ich habe auch versucht:
Ansicht enthält:
<script>var CallbackFunction = function() {}; // Placeholder</script>
Die Methode:
function AddRecipient(field, nameId) {
var DiPSURL = "/DiPS/index";
if (deliveryChannel === undefined) {
deliveryChannel = 0;
}
var DiPSWindow = GetDiPSWindow();
if (DiPSWindow.location.href === "about:blank") {
DiPSWindow.location = DiPSURL;
DiPSWindow.onload = function() { DiPSWindow.CallbackFunction = AddRecipient(field, nameId) }
} else {
var input = DiPSWindow.document.getElementById(field + "_Input");
input.value = input.value + nameId;
var event = new Event('change');
input.dispatchEvent(event);
}
}
Nicht vollständig. Intern nimmt jquery automatisch das lokale 'Dokument' und nicht das, was Sie für .ready übergeben. Andere Methoden können jedoch funktionieren. Um die volle Funktionalität zu erhalten, würde ich vorschlagen, dass das Fenster eine eigene Kopie von jQuery geladen hat. –
@KevinB sagen, es ist nicht möglich in einer Antwort und ich werde es akzeptieren lol –