2011-11-11 169 views
0

我正在研究c#應用程序。我們正在使用xsl將xml內容轉換爲html。一旦文件轉換爲HTML。我想通過在1 2和3上改變字體大小。因此,如果用戶點擊1字體大小爲9pt,在2 11pt和3上它應該是13pt。我可以使用JavaScript來做到這一點嗎?是否有可能在xsl中添加javascript函數,以便在文件轉換爲html時具有該javascript函數? 如果你回答這個問題,請嘗試完整地解釋它。提前致謝。使用javascript更改字體大小

回答

0

您需要將JavaScript插入到CDATA中。否則,它只是編寫改變身體的fontSize風格大小的錨點。

<![CDATA[ 
<script> 
window.onload = function() { 

    var fontchange = document.createElement("div"); 
    var fontchangelink = function(fontsize, desc) { 
     var a = document.createElement('a'); 
     a.href="#"; 
     a.style.margin = "5px"; 
     a.onclick = function() { 
     document.body.style.fontSize = fontsize + 'pt'; 
     }; 
     a.innerHTML = desc; 
     return a; 
    }; 
    fontchange.appendChild(document.createTextNode("Change font size:")); 
    fontchange.appendChild(fontchangelink(9, "1")); 
    fontchange.appendChild(fontchangelink(11, "2")); 
    fontchange.appendChild(fontchangelink(13, "3"));  

    document.body.insertBefore(fontchange, document.body.childNodes[0]); 
}; 
</script> 
]]> 

你可以更好的風格,但這裏是它的外觀:

Example Output

0

假設你正在呈現內容成某種容器,例如像一個跨度,你應該能夠做這樣的事情:

編輯
如果用戶能夠要爲下拉列表選擇大小,請將選項值設置爲以磅爲單位的實際大小。

changeFontSize = function(size){ 
    var el = document.getElementById("container"); 
    if (el){ 
     el.style.fontSize = size + "pt"; 
    } 
} 
0

首先,理論上是可以的。但是,您需要先確保一些事情。

  1. 請確保您的頁面上的字體都是相對的。這意味着一切應該使用像100%,150%,1.2em等字體大小,而不是12px,10pt等。
  2. 確保您的腳本是HTML中最後加載的節點或者要更改的功能該文本由身體的onload事件觸發。

該過程很簡單。你可以創建一個改變body元素字體大小的函數。因爲一切其他都是相對的,這會影響到每個元素。 (例如,將body字體設置爲12px將使得設置爲150%的任何內容爲18px)。

一個簡單的函數來做到這一點可能是這樣的:

function changeFont(sizeInPixels) 
{ 
    document.body.style.fontSize = sizeInPixels + "px"; 
} 

,然後剛纔添加的功能作爲一個事件,以適當的參數按鈕/鏈接。