2017-05-14 64 views
-1

請幫幫忙,我無法實現這個JavaScript來我的博客......如何將這個Javascript實現爲Blogger?

(function() { 
    var pre = document.getElementsByTagName('pre'), 
     pl = pre.length; 
    for (var i = 0; i < pl; i++) { 
     pre[i].innerHTML = '<span class="line-number"></span>' + pre[i].innerHTML + '<span class="cl"></span>'; 
     var num = pre[i].innerHTML.split(/\n/).length; 
     for (var j = 0; j < num; j++) { 
      var line_num = pre[i].getElementsByTagName('span')[0]; 
      line_num.innerHTML += '<span>' + (j + 1) + '</span>'; 
     } 
    } 
})(); 

你可以看到此Javascript在這裏工作精細:http://jsfiddle.net/tovic/AbpRD/1/

+0

你不能?你有什麼問題? – Picard

+1

[我如何在Blogger中添加JavaScript?](http://stackoverflow.com/questions/6449733/how-can-i-add-javascript-inside-blogger) – Lucky

回答

0

如果您看到的是以下類型的錯誤,當你嘗試在你的主題代碼添加這個JavaScript片段 -

錯誤解析XML:元素的內容必須包含合式的字符數據或標記。

然後解決此錯誤,請使用以下方法 -

裹的代碼在script標籤CDATA指令中。該代碼將看起來像 -

<script> 
//<![CDATA[ 
(function() { 
    var pre = document.getElementsByTagName('pre'), 
     pl = pre.length; 
    for (var i = 0; i < pl; i++) { 
     pre[i].innerHTML = '<span class="line-number"></span>' + pre[i].innerHTML + '<span class="cl"></span>'; 
     var num = pre[i].innerHTML.split(/\n/).length; 
     for (var j = 0; j < num; j++) { 
      var line_num = pre[i].getElementsByTagName('span')[0]; 
      line_num.innerHTML += '<span>' + (j + 1) + '</span>'; 
     } 
    } 
})(); 
//]]> 
</script> 

這種方法是瞭解,Blogger XML解析器將忽略CDATA指令中的任何數據的佈局標籤(例如像<data:blog.homepageUrl/>)唯一的缺點。它不會用它們的實際價值取代它們,它不會解釋它們並按原樣顯示它們。

2.逃生在代碼以下字符 -

「替換爲& QUOT;
&被替換爲&安培;
< 替換爲& LT;
>替換爲& gt;

逃脫後,代碼應該看起來像 -

<script> 
(function() { 
    var pre = document.getElementsByTagName('pre'), 
     pl = pre.length; 
    for (var i = 0; i & lt; pl; i++) { 
     pre[i].innerHTML = '&lt;span class=&quot;line-number&quot;&gt;&lt;/span&gt;' + pre[i].innerHTML + '&lt;span class=&quot;cl&quot;&gt;&lt;/span&gt;'; 
     var num = pre[i].innerHTML.split(/\n/).length; 
     for (var j = 0; j & lt; num; j++) { 
      var line_num = pre[i].getElementsByTagName('span')[0]; 
      line_num.innerHTML += '&lt;span&gt;' + (j + 1) + '&lt;/span&gt;'; 
     } 
    } 
})(); 
</script> 

數據佈局標籤下面這種方法時仍然起作用。記住逃生<>周圍的數據佈局標籤(又名<data:blog.homepageUrl/>工作,但不&lt;data:blog.homepageUrl/&gt;

如果沒有數據佈局標籤必須包含在JavaScript。然後,您可以通過佈局選項卡將其添加到HTML/JavaScript小工具中,而不是直接將其包含在主題代碼中。