在 Objective C 中,我使用loadHTMLString來加載一個 HTML 字串,該字串已插入一個 JS 變數。但是,字串 \n 未包含在腳本中。
例如,要包含的代碼:
'Product:A\nProduct:B\nProduct:C'
進入java腳本為:
var source = 'Product:A\nProduct:B\nProduct:C'
但是,在完成的 HTML 檔案中,創建的腳本顯示為:
var source = 'Product:A Product:B Product:C '
我需要它完全按照所寫的那樣顯示才能正常作業。沒有替代品:
var source ='Product:A\nProduct:B\nProduct:C'
最初,我覺得問題出在格式化使用:NSString stringWithFormat,但使用了 stringByAppendingString,但還沒有運氣。
謝謝你的幫助
這是 Obj C 插入代碼時的顯示方式:
</head>
<body>
<h1>Absence Of Blood</h1>
<canvas id="target-canvas"></canvas>
<script>
var canvas = document.getElementById('target-canvas')
var source = 'Product:A
Product:B
Product:C
'
nomnoml.draw(canvas, source)
</script>
</body>
顯然,只有手動輸入代碼才會出現這樣的情況:
</head>
<body>
<h1>Absence Of Blood</h1>
<canvas id="target-canvas"></canvas>
<script>
var canvas = document.getElementById('target-canvas')
var source = 'Product:A\nProduct:B\nProduct:C'
nomnoml.draw(canvas, source)
</script>
</body>
我認為目標 C 正在將 \n 格式化為換行符。
一個簡單的解決方法是在 var 中用 ^ 替換 \n 并使用 javascript 函式讀取代碼并將 ^ 替換為 var 中的 \n 并將其提供給: nomnoml.draw(canvas, modifiedSource)
或者找到一種方法來阻止 Obj-C 將 \n 轉換為換行符。
NSString 選項串列在這里:
NSStrings
但我沒有看到任何會有所作為的東西。
uj5u.com熱心網友回復:
似乎您想要文字文本\并n出現在輸出中。為此,您需要轉義\nObjective-C 字串中的 。
所以不是這樣的:
NSString *output = @"var source = 'Product:A\nProduct:B\nProduct:C'";
您需要轉義反斜杠:
NSString *output = @"var source = 'Product:A\\nProduct:B\\nProduct:C'";
這將在結果中放置一個文字反斜杠,后跟字母“n”,而不是將\n特殊轉義序列解釋為換行符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533085.html
上一篇:僅單擊帶有href的鏈接
