2012-06-07 53 views
1

我有一個關於java腳本的查詢。需要在java腳本中保留空格

我有一個函數addOptions在參數「文本」

function addOption(selectbox,text,value) 
{ 
    var optn = document.createElement("OPTION");  
    optn.textContent = text; 
    optn.value = value; 
    selectbox.options.add(optn); 
} 

包含空格,當我做optn.textContent =文本;那些空格被截斷。 BUT我想保留這些空格,因爲這是一項要求。我嘗試使用optn.text = text;但也沒有工作,我使用FF 3.6.25

任何人都可以請幫助這裏

回答

1

你有沒有嘗試設置innerHTML和不斷變化的空間成非中斷空格:

optn.innerHTML = text.replace(/\s/g," "); 

演示:http://jsfiddle.net/eNDKv/

+0

當然,這也會產生副作用,也會將輸入文本解析爲HTML,而之前它沒有,這對於HTML注入來說可能是也可能不是理想的,特別是如果文本來自用戶提交的內容。 –

+0

@DelanAzabani - 一個額外的'.replace(/'時,JS實際上並沒有運行。) – nnnnnn

+0

非常感謝!它爲我工作 – Saurabh

0

請嘗試以下操作:

function addOption(selectbox,text,value) 
{  
    selectbox.add(new Option(text, value), null) //add new option to end of "sample" 
} 

上面的作品在FireFox 12.0中。

+0

在Chrome中,不保留額外的空白。 (我沒有在任何其他瀏覽器中測試過。) – nnnnnn

+0

@nnnnnn:我已經使用Chrome 20.0.1132.27 beta-m進行了測試,它確實保留了嵌入的空白區域。 –

+0

我正在運行一個非beta版本(19.0.1084.52),但它在我這裏不起作用:http://jsfiddle.net/Y4Ev4/ – nnnnnn

1
optn.appendChild(document.createTextNode(text)); 

將工作。