2011-07-29 36 views
6

Tôi đang tìm cách tải UIWebView của mình bằng tệp CSS cục bộ sẽ ảnh hưởng đến loadRequest của UIWebView.Tải UIWebView bằng tệp cục bộ CSS

Đối với độ sắc nét: Tôi có UIWebView mà tôi tảiYêu cầu bằng url trang web. Tôi cũng có tệp CSS cục bộ sẽ ảnh hưởng đến url loadRequest này.

Tôi muốn tải tệp CSS này lên UIWebView.

Cảm ơn,

Trả lời

3

stackoverflow question này dường như có một hoặc hai câu trả lời có thể giúp bạn.

Bạn cần phải nạp CSS cục bộ (sử dụng một phương pháp không khác @Shrey sử dụng, nhưng tìm kiếm tập tin CSS của bạn), và bằng cách nào đó tiêm nó vào trang, và cách duy nhất dường như là để sử dụng:

[webview stringByEvaluatingJavaScriptFromString:someJavascriptToInjectCSS]; 

và một số thông minh Javascript để sửa đổi trang để thêm CSS trong.

Hope this helps chỉ cho bạn đi đúng hướng. Tôi đã sử dụng phương pháp này để chèn các công cụ vào các trang, do đó, nó không hoạt động, nhưng tôi không biết Javascript cũng đủ để viết mã để tiêm CSS của bạn vào trang.

+0

Xin lỗi, tôi đã làm hỏng liên kết trên câu trả lời - hiện đã được chỉnh sửa. Có một câu trả lời trên trang đó xuất hiện để làm những gì bạn muốn, trong đó bao gồm cả js. – iandotkelly

+0

Cảm ơn, nhưng có thể áp dụng các tệp css tùy chỉnh trên UIWebView tải các trang web như Google hay tôi nên từ bỏ tùy chọn này không? – jkigel

+0

Có, bạn có thể sử dụng câu trả lời trong câu hỏi SO - câu trả lời tôi đang đề cập đến là: http://stackoverflow.com/questions/1893715/is-it-possible-to-use-stringbyevaluatingjavascriptfromstring-with-javascript-whic/1895864 # 1895864 Câu trả lời này cho thấy việc tải một tệp CSS từ một tệp cục bộ và đưa nó vào chế độ xem web. – iandotkelly

-1

thử điều này:

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];

+1

đừng nghĩ rằng điều đó sẽ làm những gì OP yêu cầu. Đối với người mới bắt đầu, nó là một tệp CSS cục bộ mà họ muốn tải, không phải tệp html, sau đó họ muốn chèn CSS vào một trang không tham chiếu đến nó. – iandotkelly

+0

Sau đó thử sử dụng phương thức ủy quyền webview. – Hisenberg

0

Đây là phiên bản Swift.

Tải tệp css trên phương thức ủy quyền webViewDidFinishLoad và sử dụng stringByEvaluatingJavaScriptFromString. Khoản tín dụng here

func loadWebViewStyles() { 
     guard let cssPath = NSBundle.mainBundle().pathForResource("theme", ofType: "css") else { 
      return 
     } 

     let loadStyles = "var script = document.createElement('link'); script.type = 'text/css'; script.rel = 'stylesheet'; script.href = '\(cssPath)'; document.getElementsByTagName('body')[0].appendChild(script);" 

     webView.stringByEvaluatingJavaScriptFromString(loadStyles) 
    } 
Các vấn đề liên quan