2013-10-04 91 views
0

我正在構建一個填充了iFrame內容的模式。在那個模式裏我有一個Dropbox上傳功能。我試圖做的是當有人成功上傳圖片並點擊「關閉」按鈕,信息被髮回到原始網站。然後我可以顯示一個帶有「圖片上傳」或其他東西的好按鈕。 問題是,我不斷收到一個錯誤說SyntaxError: An invalid or illegal string was specified..... window.parent.postMessage('close', url);iFrame不回發postMessage

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」沒有其他的網址。

的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。

任何幫助非常感謝!

+0

http://danheberden.com/share/feec82.png –

+0

@丹Heberden:好的thx爲您的答案。那麼怎麼了?我不明白爲什麼這不應該工作!有什麼建議麼? – Meules

回答

0

我知道這個問題是舊的,但我有這個問題,這個問題是谷歌的第二個鏈接。所以我遇到了這個問題,我解決了它,只是確保URL的字符串以'http://'或'https://'開頭,如果是這種情況。 而且解決了它。 希望它可以幫助別人