看着這個問答& A,但它並不適用於我的問題解決了: PostMessage with multiple functions or custom callbackspostMessage - 多個postMessage事件/函數/回調?
我需要一個click事件中使用的postMessage負載,然後又和接收機兩個將是對同一頁面(父)。
有沒有範圍的postMessage的方法?或發送多個postMessages?我可以解析消息來觸發特定的功能,但是如何擁有多個帖子?
感謝
看着這個問答& A,但它並不適用於我的問題解決了: PostMessage with multiple functions or custom callbackspostMessage - 多個postMessage事件/函數/回調?
我需要一個click事件中使用的postMessage負載,然後又和接收機兩個將是對同一頁面(父)。
有沒有範圍的postMessage的方法?或發送多個postMessages?我可以解析消息來觸發特定的功能,但是如何擁有多個帖子?
感謝
我的postMessage:
$.postMessage(
'layerTitle|'+ layerTitle +'',
'*',
parent
);
...
var getDocHeight = $(document).height();
$.postMessage(
'iframeHeight|'+ getDocHeight +'',
'*',
parent
);
和我得到:
$.receiveMessage(
function(e){
var message = e.data.split('|');
if(message[0] == "layerTitle"){
$('#ui-dialog-title-loginDialog').empty().append(message[1]);
}
if(message[0] == "iframeHeight"){
$('#loginLayer').attr('height', message[1]);
}
}
);
請勿使用'e.data.split',RegEx或子字符串。否則,當消息包含管道字符時,您將丟失數據。 –
@RobW - 但我控制着消息的內容 - 我們經常使用管道來處理這種情況,因爲它們不是我們工作中的常用字符 - 除了字符串中的分隔符。 – Jason
您可以將標識符添加到您的消息。我在一個爲跨域'localStorage'使用'postMessage'的方法中實現了這樣的功能。參見[這個答案](http://stackoverflow.com/a/10505907/938089?is-there-any-workaround-to-make-use-of-html5-localstorage-on-both-http-and-https) (包括完整代碼,請檢查它;)) –
要發送多個'postMessage',您只需多次調用'postMessage'。什麼不適合你?請發佈您的代碼。 – robertc
@robertc - 我現在修好了,但由於某種原因,最初,第二個postMessage沒有發送。現在都在工作。 – Jason