2010-04-30 41 views
0

我正在使用CEWP(webpart)並將此代碼放在那裏。但是這個代碼不在<head>標籤內。我需要在<head>標記中插入此代碼,動態插入javascript到<head>標記

<script src="http://code.jquery.com/jquery-latest.js"></script> 

<script type="text/javascript"> 
$("*").each(function() { if ($(this).children().length == 0) { $(this).text($(this).text().replace('Respuesta','Responder')); } }); 
</script> 

我該怎麼做?這個代碼如何在CEWP webpart中工作?

回答

3

首先,如果將其設置爲在文檔準備就緒時運行,您可以將代碼放入<head>

但是,它仍然無法正常工作。您正在迭代全部標籤。包括<html>,這將是$('*')所選的第一個。

所以你看了<html>裏面的所有文字(即整個文檔的文字),做一個字符串替換就可以了,然後把它寫回html text()。用一個簡單的文本字符串替換<html>元素的所有以前的文本和元素內容。從而摧毀頁面上的所有其他元素。哎呀。

你想要做的是找到每一個文本節點,做一個單獨的字符串就可以更換:

$(document).ready(function() { 
    $('*').each(function() { 
     for (var i= this.childNodes.length; i-->0;) { 
      var child= this.childNodes[i]; 
      if (child.nodeType===3) // TEXT_NODE 
       child.data= child.data.replace(/Respuesta/g, 'Responder'); 
     } 
    }); 
}); 

(注意:還有一堆可能的邊緣案件在這裏與表單字段和其他元素,其中改變他們裏面的文字可能不會達到你期望的效果。)

+0

你可以把那個javascript放在你想要的地方,但是不要忘記_spBodyOnLoadFunctionNames.push(「myFunction」) – 2010-05-01 07:46:07