例如,Google試圖將JQuery注入到我無法控制的頁面的UIWebView
中。當UITextField
獲得焦點,我執行下面的代碼行:如何將JQuery注入到UIWebView中的現有頁面?
NSString* scriptInject = @"var headElement = document.getElementsByTagName('head')[0]; var script = document.createElement('script');
script.setAttribute('src','http://jquery.com/src/jquery-latest.js');
script.setAttribute('type','text/javascript'); headElement.appendChild(script);";
[myWebView stringByEvaluatingJavaScriptFromString:scriptInject];
[myWebView stringByEvaluatingJavaScriptFromString:@"$(document).ready(function() {$('body').css('background', '#FF0000');}"];
我執行的背景變化來驗證我能夠運行一個jQuery腳本。我可以驗證是否正在調用Objective-C方法,並且我甚至種植了一個alert
用於加載新創建的<script>
標記,因此我知道它正在UIWebView
中執行。我如何正確注入它才能執行它?
編輯:
我有事件試過這種調用該函數來改變顏色後:
[myWebView stringByEvaluatingJavaScriptFromString:@"alert($('body').css());"];
沒有警報節目。
我發現我的代碼確實工作,只是不可靠。閱讀完文章後,可能是因爲DOM尚未準備好。在瀏覽完文章之後,執行延遲選擇器可能是等待在DOM準備好之前使用jQuery執行更改的訣竅。當我有機會時,我會試試看。 – 2010-08-26 00:32:08
你的博客帖子從網上消失:( – 2011-03-10 05:54:16
@Hamutsi。修正了!我改了博客引擎,打破了我所有的鏈接。 – 2011-03-10 18:19:45