我正在构建一个充满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”而不是完整的网址。
任何帮助都非常感谢!
答案 0 :(得分:0)
我知道这个问题已经过时了,但我遇到了这个问题,这个问题是Google的第二个链接。所以我遇到了这个问题,我解决了这个问题,只是确保url的字符串以“http://”或“https://”开头,如果是这样的话。 这解决了它。 希望它可以帮助某人