2014-05-13 38 views
1

我正在從堆棧中寫入html文件。這有點痛苦,因爲對於每一行,如果文件包含引號,我必須寫下如下所示的內容。轉義HTML文本

write "<div id=hidden-" & quote & myKanton & quote && "style=" & quote & "display:block;" &quote&&"class=" &quote & "popuptable" &quote& ">" & LF to file tOutputFileCH 

現在我要再次增添了不少的HTML代碼,我想知道如果有一個更簡單的方法可以這樣做:

write escaped("my html numbers and "txt" with quotes") to file 

我沒有在需要的變量html文本。

回答

0

人們經常使用的功能,如

function q theText 
    replace "'" with quote in theText 
    return theText 
end q 

可以用來作爲

write q("<div id=hidden-'" & myKanton & "' style='display:block;'" & "class='popuptable'>" & LF) to file tOutputFileCH 

您可以在上面的例子中使用字符串等,但是你也可以使用任何容器:

get q(myVariable) 
put q(it) into field 1 
put q(field 1) into field 2 
put q(url myUrl) into url myOtherUrl 
put q(the cProperty of me) into myVar 
-- etc etc etc 

如果更改q函數,也可以使用'或'而不是''。

順便說一下,我注意到你在引號中沒有包括hidden-。你確定這是正確的嗎?

+0

謝謝,我可以試試。那你怎麼填寫theText呢?它是否必須來自資源堆棧中的某個字段,或者它是否也可以在堆棧中工作? 謝謝,我也注意到了隱藏的bug,並且已經在代碼中糾正了它:-) – Tate83

+0

它適用於任何數據,它來自何處並不重要。我會在我的答案中添加一些示例。 (不要忘記點擊接受並請投票給所有有用的答案)。 – Mark

+1

如果您的數據包含單引號和雙引號,請小心! :D – splash21

0

HTML允許使用引號和單引號的,所以你可以...

put "<div style='border:1px'>" into tHTML 

LiveCode的format命令可以讓你逃脫雙引號...

put format("my html numbers and \"txt\" with quotes") into tData 
+0

格式很好,但你仍然需要輸入額外的反斜槓。使用q()函數更短,但顯然format()仍然好得多,然後分別寫所有的引號。 – Mark

0

它現在的工作。我將html行放在自定義堆棧屬性中,並在寫入文件時將其用作輸入。完美的作品。它甚至似乎沒有q功能。

write (the cMapOverlay of stack "AfaConverter") & LF to file tOutputFileCH 

我也試過,因爲

onmouseover="nhpup.popup($('#hidden-VS').html(), {'width': 400});" href="./kantone/index_kanton_VS.html"  

這是符合Q麻煩不adaptions因爲「被替換爲」這是一個問題。

+0

用HTML/javascript同時提供單引號和雙引號是很常見的 - 你是代碼片段就是一個很好的例子:) – splash21

+0

我想..但是這讓擁有一些很好的函數變得更加重要,因爲'「target =」 &quot;&quot; _blank&quot;看起來不太容易......這只是一小步 – Tate83

0

這裏有一些很好的答案,讓我建議採用另一種方法,您可以使用引用功能,但方式稍有不同:

function q pString 
    return quote & pString & quote 
end q 

然後使用LiveCode merge()函數。合併評估[[]]中包含的任何LiveCode表達式或變量,並將其合併到封閉的引用文本中:

write merge("my html numbers and [[q("txt")]]") to file