2012-03-24 47 views
0

我嘗試使用內容可編輯的UIWebView製作富文本編輯器,因爲UITextView沒有得到任何充實。我想知道如何以編程方式替換選擇內容或插入HTML代碼(例如創建指向選定文本的鏈接或實現搜索/替換功能)。我試過:在UIWebView中插入HTML

[self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.ExecCommand('insertHTML', false, '%@')", myString]]; 

但它不工作......你知道是否有解決方案嗎?

感謝,

丹尼斯

回答

6

這是遲到了,但只是櫃面其他人是看這個你原來的解決方案工作,你只是偶然有

document.ExecCommand 

應該

document.execCommand 

香港專業教育學院與測試它小寫字母e和它的作用。

1

可以加載HTML到使用loadHTMLString:消息的網頁視圖。我希望這不是你想要的。

加載一些html後,您有兩個選項可用於在您的webview和您的objective-c代碼之間進行通信。 1從objective-c開始,2從javascript開始。

  1. 您可以執行執照javascript,使用您的uiwebview上的stringByEvaluatingJavaScriptFromString:消息。這是非常靈活的,可用於注入代碼和調用現有代碼。例如。你可以使用[webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"editor\").innerHTML"]來從id編輯器的div中獲取內容。

  2. 通過實施UIWebViewDelegate,您可以通過webView:shouldStartLoadWithRequest:navigationType:通知每次在web視圖中打開請求的網址。這使您有機會從url中提取信息,並通過返回NO取消任何進一步的加載。例如。在你的javascript中,當光標經過一些粗體文本時你可以做document.location = "bold";。這會讓你有機會更新你的用戶界面來反映這一點。

+0

這是我使用的第一個選項,'stringByEvaluatingJavaScriptFromString:',它可以完美地使選擇粗體或斜體。我會很高興不要被迫使用loadHTMLString ...因爲我會失去選擇,並會被迫在不知道範圍內進行查找/替換...... – Denis 2012-03-24 22:20:10

+0

我不能投票,因爲我是一個新手網站...仍然沒有找到解決這個問題的方法... NSText是OSX的一個很好的解決方案,可能是爲了降低Macintosh上MS Word的統治地位。在iOS上,沒有微軟,蘋果沒有努力......這有助於該公司出售他們的「頁面」應用程序,這絕對不是大多數渴望文本的人的解決方案。 – Denis 2012-03-25 21:31:00