1

我有几个要点需要包含在网站帖子中以展示源代码。目前,我正在使用脚本标签在 HTML 的不同位置内联多个要点中的每一个,但是,这将是一个阻塞调用。那么,有没有办法动态加载要点并将其粘贴到特定的时间点。

我尝试了以下类似的方法:-

<html>
<body>
<div id="bookmarklet_1.js"></div>
<div id="bookmarklet_2.js"></div>
<div id="bookmarklet_3.js"></div>

var scriptMap = {'bookmarklet_1.js' : 'https://gist.github.com/892232.js?file=bookmarklet_1.js',
                 'bookmarklet_2.js' : 'https://gist.github.com/892234.js?file=bookmarklet_2.js',
                 'bookmarklet_3.js' : 'https://gist.github.com/892236.js?file=bookmarklet_3.js'};

var s, scr, holder; 
for(s in scriptMap){
    holder = document.getElementById(s);
    scr= document.createElement('script');
    scr.type= 'text/javascript';
    scr.src= scriptMap[s];
    holder.appendChild(scr); 
 }
 </script>
 </body>
 </html>

以上对我不起作用,似乎每个脚本都在document.write内部编写CSS和源代码。有没有人尝试过这个或让它工作?

4

3 回答 3

2

I started a project exactly for this purpose. Dynamically-embedded Gists

Try it now: http://urlspoiler.herokuapp.com/gists?id=992729

Use the above url as the src of a dynamically-created iframe, or add &format=html to get the Gist html snippet via ajax, then put it anywhere you want. (The gist in the above url also happens to be the documentation for how to use this project.)

于 2011-05-30T20:58:04.457 回答
1

我自己也想做完全相同的事情(甚至删除了默认的 gist 样式链接)——最终构建了一个处理document.write调用的“通用”脚本加载器:

https://github.com/kares/script.js

以下是如何使用它来嵌入要点(和馅饼):

https://github.com/kares/script.js/blob/master/examples/gistsAndPasties.html

于 2011-05-21T10:57:08.817 回答
0

您现在可以使用 JSONP 直接获取 HTML + CSS。

我写了一个更完整的答案来回答这个问题,但关键是您可以使用 JSONP 获取 HTML + CSS。

例如:https ://gist.github.com/anonymous/5446989.json?callback=callback12345

callback12345({
    "description": "Function to load a Gist without an iframe",
    "public": true,
    ...
    "div": <HTML code>,
    "stylesheet": <URL of CSS file>
})
于 2013-04-23T20:21:53.160 回答