我在應用程序中使用Web視圖,而不是打開Safari瀏覽器實例,因此我注意到Safari擴展不起作用。是否有可能在Cocoa應用程序中使用自定義的Web視圖時啓用此功能?如何在使用Web視圖時啓用Safari擴展
由我需要使用Safari擴展的原因是注入JavaScript的任何網頁在一個時刻被加載,所以如果有另一種方式來做到這一點,而無需使用擴展,歡迎任何建議或樣品。
我在應用程序中使用Web視圖,而不是打開Safari瀏覽器實例,因此我注意到Safari擴展不起作用。是否有可能在Cocoa應用程序中使用自定義的Web視圖時啓用此功能?如何在使用Web視圖時啓用Safari擴展
由我需要使用Safari擴展的原因是注入JavaScript的任何網頁在一個時刻被加載,所以如果有另一種方式來做到這一點,而無需使用擴展,歡迎任何建議或樣品。
有沒有辦法在Web視圖中使用Safari擴展。
如果你的腳本不是太大,那麼將它格式化爲「javascript:」小書籤並設置web視圖的位置呢?
[編輯:東西下面響應於提問者請求爲「更多關於該技術有點」加入。]
假設您要將頁面的背景顏色更改爲黃色,將所有文本更改爲紅色。要做到這一點的JavaScript會是這樣的:
document.body.style.backgroundColor = "yellow";
document.body.style.color = "red !important";
要打開腳本轉換爲書籤,您只需:
因此,例如將成爲:
javascript:(function(){document.body.style.backgroundColor%3D%22yellow%22%3B%0Adocument.body.style.color%3D%22red%20!important%22%3B%0A}());
然後你可以設置的WebView window.location
該字符串爲「運行」的書籤。
Here is a page有自動腳本書籤轉換器,似乎工作。
也許調用WebView的['stringByEvaluatingJavaScriptFromString:'](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/Reference/Reference.html#//apple_ref/ occ/instm/WebView/stringByEvaluatingJavaScriptFromString :)從你的WebFrameLoadDelegate ['webView:didClearWindowObject:forFrame:'](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/WebKit/Protocols/WebFrameLoadDelegate_Protocol/ Reference/Reference.html%23 // apple_ref/occ/instm/NSObject/webView:didClearWindowObject:forFrame :)可能就像是一個注入的「啓動腳本」。 – 2012-03-04 07:01:19