我们已经在webview中加载了登录页面,现在一旦用户点击webview中的“登录”按钮,我想使用iOS objective-c代码更改该按钮的颜色。这可能吗?
谢谢!
答案 0 :(得分:0)
可以使用UIWebView的委托方法。 然后,您可以在ObjC或Swift中执行JavaScript代码。
几分钟后我会告诉你细节代码,因为我正在回家的路上。
嗨,我回来了。
主要的想法是重新分配按钮的onclick
属性。
在实现新功能时调用旧的“onclick”功能。
首先,您应该知道按钮的onclick
功能。
通过阅读网页的源代码,您可以知道函数的名称。
您也需要知道按钮的ID。
例如,clickButton()
是函数名称。 btn
是按钮的ID。
<input type="button" id="btn" value="Test Button" onclick="clickButton()">
然后,您应该启动Xcode并编写UIWebView来加载网页。
您应该实现delegate
属性并覆盖-webViewDidFinishLoad:
方法。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('btn').onclick = function () { document.getElementById('btn').style.backgroundColor = 'red'; clickButton(); }"];
}
您应该使用正确的代码替换'red'
和'btn'
。
答案 1 :(得分:0)
我在某个地方读到这个......它对我有用..
点击此链接:http://jsfiddle.net/timdown/Bvd9d/并将JS代码放入您的JS文件中。将其导入.HTML文件。
试试这段代码:
function highlight(colour) {
var range, sel;
if (window.getSelection) {
try {
if (!document.execCommand("BackColor", false, colour)) {
makeEditableAndHighlight(colour);
}
} catch (ex) {
makeEditableAndHighlight(colour)
}
} else if (document.selection && document.selection.createRange) {
// IE <= 8 case
range = document.selection.createRange();
range.execCommand("BackColor", false, colour);
}}
对于目标C:
调用此方法:
[webView stringByEvaluatingJavaScriptFromString:@"highlight('#ff0')"];