2014-11-22 53 views
0

有一個我試圖用於Blogger的腳本。它可以在您將域名URL輸入到src時起作用,但我試圖找到一種方法來使用主機名來插入域名。從地址運行文件使用主機名

原創劇本:

<script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=INSERT-YOUR-URL-HERE&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json" /> 

我想:

<script type="text/javascript"> 
    var excuteTopCommentators = "http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=http://'+window.location.hostname+'&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json" 
    return excuteTopCommentators 
</script> 

我也試過文件撰寫:

<script type="text/javascript"> 
    document.write('<script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=http://'+window.location.hostname+'&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json"></script>'); 
</script> 

無論是嘗試似乎工作。如何做到這一點,而無需手動將域名URL插入腳本src?

+0

您在開發者控制檯看到了什麼?下載文件?我對你的第二次嘗試感興趣。 – 2014-11-22 04:09:50

+0

非法返回聲明和意外標識符 – Xarcell 2014-11-22 04:31:01

回答

0

也許問題是你得到的腳本,但它永遠不會執行。

也許嘗試jQuery的getScript加入http://api.jquery.com/jquery.getscript/

function getIt() { 
    return $.getScript('http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=http://'+window.location.hostname+'&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json'); 
} 
+0

無法正常工作,並且在Chrome控制檯中未顯示任何錯誤。 – Xarcell 2014-11-22 04:25:45

+0

嘗試直接在瀏覽器URL欄中打開腳本。你能否排除腳本是否存在? – 2014-11-22 04:27:17

+0

當我在我的域URL中手動輸入時,該腳本起作用。當我嘗試使用主機名時它不起作用。 – Xarcell 2014-11-22 04:32:38

0

你的第二個選項看起來不錯:

<script type="text/javascript"> 
    document.write('<script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=http://'+window.location.hostname+'&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json"></script>'); 
</script> 

腳本下載卻又無可奈何。 這是因爲它是一個JSONP,而不是一個腳本

所以,你需要一個回調函數來得到它的工作:(注意,是數據,而不是代碼)

<script type="text/javascript"> 
    // JSONP Callback 
    function getYpipePP(data) { 
     alert(JSON.stringify(data)); 
    } 

    document.write('<script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=http://'+window.location.hostname+'&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json"></script>'); 

</script> 

http://plnkr.co/edit/HhYZtH09EcdPZbwS9rfq?p=preview

看查詢,說_callback=getYpipePP_render=json

相關:What is JSONP all about?

+0

沒有工作:未捕獲SyntaxError:意外的標識符。我懷疑這可能與這是一個XML模板的事實有關。我嘗試添加CDATA標籤到你的腳本,但後來得到了錯誤的非法令牌。 – Xarcell 2014-11-22 04:28:07

+0

@Xarcell它的作品,你正在獲取一個JSONP OBJECT而不是一個腳本。看到plunker並查看獲取的數據,只需調用一個名爲getYpipePP的函數並傳遞一個JSON對象作爲參數即可。就是那個jsonp。 – 2014-11-22 04:30:17

+0

對不起,但它沒有。輸出是'');'並且它在控制檯中引發錯誤。 – Xarcell 2014-11-22 04:34:48

0

試試這個(您遇到的問題是,到底「腳本」標籤):

<script type="text/javascript"> 
     document.write('<script language="javascript" src="http://pipes.yahoo.com/pipes/pipe.run?YourBlogUrl=http://' 
        + window.location.hostname 
        + '&amp;ShowHowMany=5&amp;_id=390e906036f48772b2ed4b5d837af4cd&amp;_callback=getYpipePP&amp;_render=json" type="text/javascript"><\/script>') 
    </script> 
+0

似乎不起作用。輸出是'')' – Xarcell 2014-11-22 11:43:22

相關問題