0

我正在构建一个充满 iFrame 内容的模式。在该模式中,我有一个保管箱上传功能。我尝试做的是当有人成功上传图像并单击“关闭”按钮时,信息将发布回原始站点。然后我可以显示一个带有“图片上传”或其他内容的漂亮按钮。问题是我经常收到一个错误说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”而不是完整的 url。

非常感谢任何帮助!

4

1 回答 1

0

我知道这个问题很老,但我遇到了这个问题,这个问题是谷歌的第二个链接。所以我遇到了这个问题,我解决了这个问题,只要确保 url 的字符串以“http://”或“https://”开头(如果是这种情况)。这解决了它。希望它可以帮助某人

于 2015-04-09T19:59:32.220 回答