iFrame不会使用postMessage回发

时间:2013-10-04 22:17:01

标签: jquery iframe modal-dialog

我正在构建一个充满iFrame内容的模态。在该模态中我有一个Dropbox上传功能。我尝试做的是当某人成功上传图像并单击“关闭”按钮,将信息发布回原始网站。然后我可以显示一个漂亮的按钮“图像上传”或其他东西。 问题是我不断收到错误SyntaxError: An invalid or illegal string was specified..... window.parent.postMessage('close', url);

iFrame的网址:

http://www.webshop.com/dropboxupload/?id=1042013-72374&url=http://www.website.com/&place=0#

代码:

function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value){vars[key] = value; }); 
return vars;
}

function close_parent(){ 
    var url = getUrlVars()["url"]; 
    //console.log(url);
    window.parent.postMessage('close', url);
} 

当我在代码中使用console.log时,我只得到“htt”而没有其余的url。

关闭按钮的Html:

<a class="close uploadbutton" onclick="javascript:close_parent();" href="#">Voltooien</a>

返回原始网站时的代码:

 var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
                var eventer = window[eventMethod];
                var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
                var url = window.location.href;

                eventer(messageEvent,function(e) {
                  if(e.data == 'close'){
                    up_popover_hide();
                    var urlIframe = $('iframe#upload').attr("src");
                    var indexPlace = getUrlVars(urlIframe )["place"];
                    var idUpload = getUrlVars(urlIframe )["id"];
                    $('.placeholder.index_'+indexPlace+' .upload_'+idUpload).html('File uploaded!');
                  }else{}},false);

我真的看不出我做错了什么,也不明白为什么我只是得到“htt”而不是完整的网址。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

我知道这个问题已经过时了,但我遇到了这个问题,这个问题是Google的第二个链接。所以我遇到了这个问题,我解决了这个问题,只是确保url的字符串以“http://”或“https://”开头,如果是这样的话。 这解决了它。 希望它可以帮助某人