2012-06-07 22 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)); 

将工作。