Tôi có một tập lệnh Greasemonkey sẽ gửi một postmessage đến một iframe nhúng nơi cùng một kịch bản bắt đầu một hàm. Sự chú ý của tôi là gửi một thông điệp dễ dàng để kích hoạt một hàm bên trong khung nội tuyến. Trang web và khung nội tuyến không nằm trên cùng một tên miền. Kỹ năng js của tôi khá tệ và tôi không thể tìm ra vấn đề.Sử dụng postmessage để liên lạc với iframe - lỗi ở đâu?
Thx cho việc đọc
// ==UserScript==
// @name Test
// @namespace
// @include domainA
// @include domainB
// @version 1
// @grant none
// ==/UserScript==
if ("domainA" === location.hostname)
{
if (window === top) // prevents the script from running twice on domain A
{
window.setTimeout(delay, 15000);
function delay()
{
console.log("Delay");
document.getElementsByTagName("Iframe")[0].contentWindow.postMessage('message', 'domainB'); //The issue is probably here
}
}
}
else // domain B
{
window.onmessage = function() // or here
{
console.log("Done"); // Didnt start
}
}
chỉnh sửa: Iam sử dụng Firefox
Bạn đang sử dụng đối số 'postMessage' thứ hai nào? Có phải tên miền hoặc URL không? Tham số gốc phải là 'http: // some.domain.com' (hoặc tương tự) không phải' some.domain.com'. – Jacob
Iam bằng cách sử dụng 'https: // domain.com' –