问题标签 [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 投票
2 回答
5321 浏览

javascript - 是否可以将 stringByEvaluatingJavaScriptFromString 与引用本地文件的 Javascript 一起使用?

我想使用 stringByEvaluatingJavaScriptFromString 来运行一个javascript,它引用设备上的本地文件(在这种情况下是css文件,但也可能是js文件)(我猜是在Documents文件夹中?)...

我怎样才能让它工作?如果我使用外部 css 文件,它工作正常,比如

0 投票
1 回答
991 浏览

javascript - 如何将 UIWebView javascript 异常的 sourceId 与源文件相关联?

简短的问题:异常的“sourceID”指的是什么,我如何将它链接到相关的源字符串/文件?

更长的故事:

我正在通过[UIWebView stringByEvaluatingJavaScriptFromString:]. 为了帮助开发以及稍后检查用户提供的代码,我使用以下函数来安全地运行任何代码:

如果一切顺利,[MyJS runJS:js]运行良好并返回一个 JSON 字符串,其中包含“js”代码中最后一条语句的评估结果。

现在,如果在评估过程中发生了不好的事情,我会得到一个 JSON 化的异常对象。例如,如果“js”代码中出现语法错误,我会得到如下信息:

{"message":"解析错误","line":1,"sourceId":26121296}

这对于跟踪问题已经非常有用了......

但是,当我通过 运行多个字符串时runJS:,我希望能够查明是哪一个导致了异常(因为运行时错误可能来自在以前的 javascript 代码字符串中创建的函数)。这个“sourceId”属性看起来很有趣,但我找不到它指向的内容。它看起来像一个指针地址(与指向其他对象的指针的值相似),但它与我传递给评估器的任何字符串都不匹配。我怎样才能建立这个链接?

奖励积分:是否有任何关于 UIWebView 特定的 javascript 环境的文档可用,比如这个异常对象?Safari Web Content Guide很好,但没有详细介绍。

0 投票
1 回答
1575 浏览

performance - 从 UIWebView 中删除 HTML 元素时性能糟糕

我目前正在编写一个使用 UIWebView 浏览页面的 iOS 应用程序。有时我需要使用 动态删除 UIWebView 中的元素stringByEvaluatingJavaScriptFromString:,但这会在我的第一代 iPod touch 上将主 UI 锁定有时长达 2 秒,在 iPhone 3GS 上可能会锁定半秒。我用来删除它的 JavaScript 很简单:

没有比这更复杂的了。同时,我在 OpenGL ES 中进行了一些非常基本的 2D 渲染,如果重新渲染 UIWebView 不会锁定,我会在主线程上使用简单的 CoreAnimation。难道它必须重新计算 DOM 树、所有元素位置等?这真的应该锁定主 UI 线程吗?是我打电话stringByEvaluatingJavaScriptFromString:把所有东西都锁起来了吗?在这种硬件上这是正常的吗?奇怪的是它能够在 webview 中渲染一些半复杂的 MooTools 动画,具有不透明度和高度的变化,但删除一个元素需要几秒钟。

有人对改进有任何想法吗?也许只是隐藏元素使用visibility: hidden更好,或者设置opacity: 0?有什么想法或明智的话吗?

0 投票
2 回答
1085 浏览

uiwebview - ApplicationDidEnterBackground 和 UIWebview

我的应用程序有问题。我正在构建一个属于某种 webApp 的应用程序。所以应用程序在服务器上运行,我通过 UIWebview 与它交互。

所以让我解释一下我在这里想要实现的目标。在网页上我有几个 Javascript 函数,我通过 stringByEvaluatingJavaScriptFromString 示例与这些函数进行交互:代码:

服务器执行此命令并执行以下操作

它将 URLPrefix 设置为 ServerReply://() 我用

因此,如果 URL 具有前缀 ServerReply://,它将在我的应用程序中运行一个函数。

到目前为止一切都很好,但是当用户按下 HOME 按钮或接到电话时。ApplicationDidEnterBackground 方法将被调用,我想调用另一个 JS 函数

代码:

然后服务器应该给我一个带有前缀 SaveClientData://(somestring) 的 URL

所以应用程序关闭并且它不起作用....我的代码是这样的

代码:

这不起作用,但如果我做代码:

我离开应用程序时收到日志消息...

是否可以做 [webView stringByEvaluatingJavaScriptFromString:@"gettingCl osed()"]; 如果我的应用程序移到后台?还是有不同的方法来获得相同的结果......?

tnx 提前,

巴特

0 投票
3 回答
2769 浏览

objective-c - 将本地图像加载到 UIWebView

我想截屏,然后向 webview 发送它的本地路径,所以它会显示它。我知道 webview 可以从 NSBundle 获取图像,但是这个屏幕截图是动态创建的——我可以通过代码添加一些东西吗?

我是这样尝试的:

但是 loadImageFunction 无法访问它,带有 file:/// 或 file:// 前缀。解决方案是什么?谢谢你的帮助。

编辑:在代码中添加了一个缺失的行

解决方案:我使用了 Cyrille 的建议和这个库进行编码:http ://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html

0 投票
1 回答
155 浏览

javascript - 将 UISlider 值传递给 stringByEvaluatingJavaScriptFromString?

我有一个 UISlider,我正在尝试将它的值传递给 window.scrollBy 字符串。基本上,我正在尝试用户可配置的网络内容自动滚动。

实际的滚动工作正常,但我无法使用普通的 %f 和 , 方法将值传递给 JavaScript。

我正在使用上述内容,我希望将“5”替换为滑块的值。

这可以在不需要更多 Java 的情况下完成吗(我绝对不是 JavaScript 程序员!)

0 投票
1 回答
1414 浏览

ios - iOS - 使用 Javascript 播放嵌入的 YouTube 视频

我希望这是可能的。我在我的应用程序中嵌入了一个 YouTube 视频UIWebView。我正在使用stringByEvaluatingJavaScriptFromString使用javascript的方法。我想在应用程序中按下一个按钮,让 YouTube 视频开始播放。这是一些代码来概述我要说的内容。

嵌入功能:

修饰内部处理程序:

我能够提醒元素播放器并且它确实找到了嵌入的 HTML 对象,所以我知道 javascript 正在工作,但是我无法让它开始播放。我试过player.playVideo(); player.play(); 没有运气。

有什么建议么?

0 投票
1 回答
2010 浏览

ios - stringByEvaluatingJavaScriptFromString 参考本地文件

我的捆绑资源中有一个图像,我需要在我的 webView 中将其作为源文件 (src="") 引用stringByEvaluatingJavaScriptFromString。我可以从网站引用外部图片,但我不知道如何编写本地图片的 URL。

怎么可能做到这一点?

0 投票
1 回答
1542 浏览

javascript - UIWebView 更改源中文本的行距

我有一个 javascript 方法可以传递给 stringByEvaluatingJavaScriptFromString: 在 UIWebView 子类中。

我已经将它添加到 stringByEvaluatingJavaScriptFromString: 方法中,只要我指定一个像素值,代码就可以工作。如果我使用像下面的代码这样的变量,它不会做任何事情。我究竟做错了什么?

我正在使用 largeBool 来告诉我间距是否需要增加或减少。然后我设置最大值和最小值,并使用线高作为变量。

我还使用 UIWebView 的 didFinishLoading 委托方法来保存当前的行距值。

我得到的只是日志中的“0”。

提前致谢!

0 投票
1 回答
458 浏览

objective-c - Using "stringbyevaluatingjavascriptfromstring" for get the link in tag in objective C