我正在构建一个充满 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。
非常感谢任何帮助!