2012-07-13 15 views
10

आईओएस में जावास्क्रिप्ट का मूल्यांकन मैं एक UIWebView करने के लिए कुछ JSON पारित करने के लिए कोशिश कर रहा है जब जावास्क्रिप्ट में यह त्रुटि मिलती रहती:"सिंटैक्स त्रुटि: अनपेक्षित EOF" जब UIWebView

SyntaxError: Unexpected EOF

कोई लाइन नंबर या फ़ाइल का नाम window.onerror में उपलब्ध नहीं है, लेकिन मैंने पहले से ही सभी संदर्भित फाइलों की जांच की है, और वे ठीक हैं।

मैं MonoTouch EvaluateJavaScript तरीका है जिसके ObjC stringByEvaluatingJavaScriptFromString: के बराबर है उपयोग कर रहा हूँ: बड़ा वस्तुओं पर

webView.EvaluateJavascript(
    "Viewer.init($('#page'), " + json.ToString() + ");" 
); 

यह पर "सरल" JSON इनपुट बस ठीक काम करता है लेकिन टूट जाता है।
क्या गलत हो सकता है?

उत्तर

14

एक UIWebView के लिए एक NSString गुजर से पहले, नई-पंक्तियों के साथ-साथ सिंगल/डबल उद्धरण से बचने के लिए सुनिश्चित हो:,

NSString *html = @"<div id='my-div'>Hello there</div>"; 

html = [html stringByReplacingOccurrencesOfString:@"\'" withString:@"\\\'"]; 
html = [html stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]; 
html = [html stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"]; 
html = [html stringByReplacingOccurrencesOfString:@"\r" withString:@""]; 

NSString *javaScript = [NSString stringWithFormat:@"injectSomeHtml('%@');", html]; 
[_webView stringByEvaluatingJavaScriptFromString:javaScript]; 
+0

मेरे मामले (MacOS 10.11+, स्विफ्ट 4.x) में जगह '\ '' '\\\ '' अनावश्यक है। – keyOfVv

3

जाहिर है, मैं escape newlines in JSON पर भूल गया, और इस प्रकार UIWebView के लिए "अप्रत्याशित ईओएफ" बनाया।

संबंधित मुद्दे