问题标签 [stringbyevaluatingjavascr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
745 浏览

javascript - Swift - stringByEvaluatingJavaScriptFromString- 上传图片

在我的应用程序中,我授予用户对 UIImagePickerController 的访问权限,允许他们拍照或从库中选择以保存到 DocumentDirectory 中的路径:

我的目标是访问已从另一个 ViewController 中的 WebView 中保存的文件,并运行一些 JS 以在页面完成加载时自动上传文件,而不是单击“选择文件”按钮并选择文件等.

这是我要调整值的元素。

这就是我在 Web 视图完成加载时正在运行的内容:

我尝试过同时使用 imagePath 和 savedPhoto,但这显然不像向元素输入文本值那么简单。

使用JS可以做到这一点吗?或者有没有更简单的替代方法来实现这一点?

谢谢

0 投票
1 回答
5898 浏览

javascript - 如何在 Swift 中使用 stringByEvaluatingJavaScriptFromString 但不使用 performSelectorOnMainThread 在 UIWebView 中显示 JavaScript 警报对话框?

在 Objective-C 中,以下代码适用于viewDidLoad

此代码建议如下:

使用 GCD 调用 UIWebView stringByEvaluatingJavaScriptFromString 在 iOS5.0/5.1 上挂起

它说performSelectorOnMainThread适用于stringByEvaluatingJavaScriptFromString. 这会弹出一个警告对话框,可以通过单击“确定”按钮将其关闭。但是,dispatch_async不起作用,对话框冻结,无法按下 OK 按钮。

问题是:如何使上述对话框的功能在 Swift 中工作?如何将代码转换为 Swift?

问题是performSelectorOnMainThread在 Objective-C 中使用的在 Swift 中不可用。

如果我直接在 中调用下面的代码viewDidLoad,设备会被 LaunchScreen 挂起:

我已经尝试了替代解决方案performSelectorOnMainThread但结果是冻结的 LaunchScreen 或冻结的警报对话框。

有人可以告诉我如何调用stringByEvaluatingJavaScriptFromString以在 Swift 中显示 JavaScript 警报对话框吗?谢谢你。

0 投票
1 回答
994 浏览

ios - Get iframe src from webview stringByEvaluatingJavaScriptFromString

I have an URL being loaded into a webview, when the loading is complete, I want to get the iframe src that is inside the HTML, and reload the webview with the iframe src.

In my iOS code, inside webViewDidFinishLoad , I am trying to get the iframe using

webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('iframe').attr('src')"];

This javascript is working in chrome console, however its not working for me.

Can you please help me?

0 投票
1 回答
769 浏览

javascript - 从 UIWebView W/Swift 将多个 Div 元素中的属性获取到我的 iOS 应用程序中

如何从 UIWebView 中定义的 div 元素中获取属性到我的 iOS 应用程序中?

为了进一步解释...

我有一个非常简单的 html 文档,我将它加载到 UIWebView 中。它允许用户单击以打开或关闭按钮。我将 div 上的属性设置为 true 或 false。请参阅下面的代码。

你可以在这里看到它的作用:https ://jsfiddle.net/x11joex11/0d92ao80/1/

我知道 swift 中的以下代码行。

此行将返回所有 HTML。现在我也许可以通过这个并解析,但我认为这应该是可能的,因为我正在使用 jquery 运行命令来获取所有被点击的框。单击每个框时,我将其“活动”属性更改为“真”或“假”。 我该怎么做呢?

例如,返回一个数组,其中包含我在每个被单击的 div (.tire_box)上拥有的 "tire" 属性值 ( "active=true" )。

使用 jQuery(因为我的 HTML 中有它)或 Javascript 的答案是可以的。只是不确定要在stringByEvaluatingJavascriptFromString()函数中添加什么

更新::

使用此命令,我能够从“一个”轮胎中获取值。

我需要能够获得选定的轮胎列表并以某种方式迅速对其进行处理。还不确定最好的方法...

有趣的是我似乎能够运行 jQuery 代码。我在 javascript 外部的变量中创建了一个函数 test(),并在我的 html 中添加了一个 alert('test') 并运行了这段代码......

我跑的 Swift Javascript

添加到 document.ready() 之外的 HTML

在 stringByEvaluatingJavaScriptFromString 函数上,它调用了警报,但我似乎没有从 stringByEvaluatingJavaScriptFromString 函数返回任何结果......只是空白?

我想知道函数“如何”返回 javascript,我必须在 javascript 命令中做什么才能使其返回一些东西?

0 投票
0 回答
220 浏览

javascript - 从objective-C调用javascript方法

我正在从目标 C 调用 javascript 函数。我有一个这样的函数:

我尝试使用此方法调用该函数,但失败了。

NSString *function = [[NSString alloc] initWithFormat: @"ABC.testingFunctionA()"];

NSString *result = [theWebView stringByEvaluatingJavaScriptFromString:function];

NSLog(@"returnValue = %@",result);

有人知道调用函数的正确方法吗?

0 投票
0 回答
328 浏览

javascript - WKWebView 中元素高度的 JavaScript 异常 - Objective-C

我在 WKWebView 中加载了以下 HTML 结构:

我在 WKWebview 中将 HTML 作为字符串加载到上面:

并计算内部 div 高度(根据 css 自动调整大小以适应内容)为:

其中 stringByEvaluatingJavaScriptFromString 函数在 WKWebView 类别中实现:

我的问题是我收到错误:“发生 JavaScript 异常”,或者在使用 stringByEvaluatingJavaScriptFromString 时有时值不正确。但是,我尝试使用 UIWebView 评估相同的 javascript 高度,它返回了正确的值。WKWebview 有什么问题?

谢谢 !

0 投票
1 回答
106 浏览

javascript - stringByEvaluatingJavaScript 对象没有 ID

self.webView.stringByEvaluatingJavaScript(from: "document.getElementById('username').value = \"\(username)\"")用来输入用户名,它工作正常。

另一个网页有这个字段:

和这个领域:

stringByEvaluatingJavaScript由于没有 ID,我将如何将文本放入此字段?

我试过"document.getElementByTagName"了,但没有用。

我要输入的网页是:链接

0 投票
1 回答
169 浏览

ios - StringbyEvaluatingJavascript 函数的线程

我正在向 javascript 发送一个值,然后 javascript 将结果返回给我。但是,返回值 (b) 保持为空需要时间,因为 javascript func 需要时间。我想我需要创建一个线程来等待结果。下面的代码也没有返回任何东西。

0 投票
2 回答
10014 浏览

javascript - WkWebView Evaluatejavascript 返回不支持的类型错误

我正在向 javascript 函数发送一个值并得到一个结果。但是,当运行以下代码时,我收到“错误域 = WKErrorDomain 代码 = 5“JavaScript 执行返回了不受支持的类型的结果”UserInfo={NSLocalizedDescription=JavaScript 执行返回了不受支持的类型的结果}”错误;

和javascript代码如下;

0 投票
1 回答
54 浏览

javascript - Objective c将对象传递给javascript函数调用的问题

这是正在发生的事情的一个示例:当在诸如 I'm 这样的单词中使用撇号时,它在发送到 javascript 函数调用时在我的字符串中不起作用。我已经读过关于在撇号前面添加反斜杠的信息,就像我一样,但这仍然不起作用。我注意到在 js 函数调用 onScan('%@') 上,撇号不能用“引号”替换,并且当括号用于传递参数时也无济于事。同样将 NSMutableString 更改为 NSString 不会更改此示例或影响此请求的答案。任何帮助表示赞赏。