簡體   English   中英

大多數瀏覽器[FF,MSIE7 / 8等]均未提供實際輸入內容

[英]Actual input contents are not preseving on most of the browsers [FF,MSIE7/8 and etc]

我正在開發一個應用程序(使用PHP,javascript)。 以下是關於我的問題陳述的簡短描述

我的應用程序有兩種形式,即SourceFrm和targetFrm。 我在第一種形式即SourceFrm上接受輸入,並在targetFrm上進行處理。

以下是我從SourceFrm獲得的輸入

1)輸入您的數據(此輸入框ID的標識為'inputdata' ):

2)輸入id(標識輸入框id為id):

根據用戶的上述輸入提要,我將此數據發布到targetFrm進行進一步處理。

TargetFrm上

我只是將inputdata值分配給php varible。 單詞之間的空格正在丟失( 多個空格轉換為一個空格 )。

例如,用戶在輸入框中添加了以下數據並提交了

輸入數據:

This is my     test.

在這里觀察到用戶在“我的”和“測試”詞之間添加了5個空格。 將輸入數據分配給php變量后。 之后,我在下面的內容中打印了此值

輸出:

This is my test.

不止一個空格正在轉換為一個空格。 我在所有瀏覽器(例如FF,MSIE7 / 8 Opera,safari,chrome)上檢查了此行為。

如果在打印php變量之前使用過'<pre>' ,即:

print "<pre>";
print $inputdata;

有時空間不會迷失(我正在獲得確切的內容)。

在這里,我的沖突是如何在不使用'<pre>'情況下保留確切的內容。 我在進一步的數據處理中使用了編碼/解碼(htmlentitiesencode()和decode())功能,因此如果我用&nbsp;替換空格,可能會產生一些沖突&nbsp; (如果我使用&nbsp;而不是space,可能會發生沖突)。

有沒有人有任何想法,建議請提出建議。

-謝謝

當您將變量輸出為HTML時,它們將被解析為HTML。 任何其他空白都將減少到一個空格。

一個簡單的解決方法是將所有空格替換為&nbsp; html實體來強制瀏覽器顯示每個空間。

我不會將字符串與所有&nbps;一起存儲&nbps; 在數據庫中顯示,但在顯示時顯示&nbsp; 將確保看到每個空間。

編輯

我的意思是只替換render上的空格...

print str_replace(' ', '&nbsp;', $inputdata);

HTML只能顯示一個空格。 我不確定為什么,但是如果檢查包含字符串的渲染網頁的源代碼,則會看到它包含所有空格,瀏覽器不會顯示它。

對於制表符,其他空格字符也是如此。

處理方式取決於您內容的類型。 您可以用&nbsp;替換空格&nbsp; 或保留原樣或做一些完全不同的事情,即將一個以上的空間減少到一個空間。

這實際上取決於數據的性質-唯一的實際情況是,當您需要的空間多於一個空間時,我想到的是,如果您要縮進帶有空間的內容,那實際上不是一個好主意。

編輯 :較舊的資源:
http://www.sightspecific.com/~mosh/WWW_FAQ/nbsp.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM