小编Wal*_*sby的帖子

是否可以在浏览器中运行沙盒JavaScript?

我想知道是否可以在浏览器中运行JavaScript沙箱,以防止访问HTML页面中运行的JavaScript代码通常可用的功能.

例如,假设我想为最终用户提供一个JavaScript API,让他们定义在"有趣事件"发生时运行的事件处理程序,但我不希望这些用户访问该window对象的属性和功能.我能做到吗?

在最简单的情况下,假设我想阻止用户呼叫alert.我能想到的几种方法是:

  • window.alert全球重新定义.我不认为这是一种有效的方法,因为在页面中运行的其他代码(即用户在其事件处理程序中未编写的内容)可能想要使用alert.
  • 将事件处理程序代码发送到要处理的服务器.我不确定将代码发送到服务器进行处理是正确的方法,因为事件处理程序需要在页面的上下文中运行.

也许服务器处理用户定义的函数然后生成要在客户端上执行的回调的解决方案可行吗?即使这种方法有效,是否有更好的方法来解决这个问题?

javascript browser sandbox

136
推荐指数
8
解决办法
4万
查看次数

了解Firebug探查器输出

我一直在尝试使用Firebug的分析器来更好地理解我们看到的一些JavaScript性能问题的来源,但我对输出有点困惑.

当我分析一些代码时,探查器报告Profile(464.323 ms,26,412个呼叫).我怀疑464.323 ms是这些26,412次调用的执行时间的总和.

但是,当我深入查看详细结果时,我会看到平均执行时间大于464.323 ms的单个结果,例如,平均时间最长的结果会报告以下详细信息:

Calls: **1**
Percent: **0%**
Own Time: **0.006 ms**
Time: **783.506 ms**
Avg: **783.506 ms**
Min: **783.506 ms**
Max: **783.506 ms**
Run Code Online (Sandbox Code Playgroud)

另一个结果报告:

Calls: **4**
Percent: **0.01%**
Own Time: **0.032 ms**
Time: **785.279 ms**
Avg: **196.32 ms**
Min: **0.012 ms**
Max: **783.741 ms**
Run Code Online (Sandbox Code Playgroud)

在这两个结果之间,时间结果的总和远远大于464.323.

那么,这些不同的数字是什么意思呢?我应该相信哪些?

javascript profiler firebug profiling

34
推荐指数
3
解决办法
1万
查看次数

正在寻找最终的Resizing Textarea

我想为用户提供resizing textarea控件.我已经给了这个去看看其他一些实现,但我似乎找不到满足我所有要求的实现.具体来说,我想要一个控件:

  • 当页面以标准兼容模式(即不在怪异模式下)呈现时,可在Windows上的IE6,IE7,IE8以及Windows和OS X上的Firefox 3和3.5中使用.
  • 不会搞乱undo buffer/undo stack.IE是一个特别令人讨厌的问题 - 添加节点,删除节点和其他一些DOM操作将重置输入缓冲区,这意味着如果实现依赖于这些技术,则撤销将不会像在标准textarea控件中那样运行.除了这个说明,我还没有找到关于这个bug的更多信息.像jQuery Auto Growing Plugin这样的实现遇到了这个问题 - 尝试撤消IE中的更改并比较它如何工作到标准textarea.我添加了一个向JSBin演示此问题的示例页面.
  • 具有最大高度,超过该高度,控件无法生长.
  • 删除内容时适当缩小.
  • 在按键上不闪烁或行为异常.例如,当控件超出初始大小时,jQuery Auto Growing Textarea控件的行为奇怪,至少是IE7.
  • 不要求控件使用固定宽度/等宽字体.

我看到的最接近这种功能的是Facebook的状态更新字段,它是作为内容可编辑的div元素实现的,但我对使用这样的元素有一些保留,因为使用div意味着:

  • 需要明确地设置边框样式,这意味着我们最终可能会得到一个看起来与原生textarea不同的边框.
  • 需要与真正的textarea同步内容(可能在两个方向?).
  • 在相对于textarea的位置放置提示和其他元素时添加复杂性.
  • 虽然这种方法适用于Facebook状态更新,但它在包含数百个标准输入元素的表单中的效果如何?

我上面列出的内容代表了"最终调整文本区域" - 解决了我认为现有方法存在的问题.这样的控制存在吗?是否可以编写这样的控件?

javascript widget

16
推荐指数
1
解决办法
5586
查看次数

PHP是否具有Java的RequestDispatcher.forward等价物?

在Java中,我可以编写一个非常基本的JSP,index.jsp如下所示:

<% request.getRequestDispatcher("/home.action").forward(request, response); %>

这样做的结果是请求index.jsp(或只是包含目录假设index.jsp是目录的默认文档)的用户将看到home.action没有浏览器重定向,即[转发](http://java.sun.com/javaee/5 /docs/api/javax/servlet/RequestDispatcher.html#forward(javax.servlet.ServletRequest,%20javax.servlet.ServletResponse))发生在服务器端.

我可以用PHP做类似的事吗?我怀疑可以配置Apache来处理这种情况,但由于我可能无法访问相关的Apache配置,所以我会对依赖于PHP的解决方案感兴趣.

php jsp forwarding http

9
推荐指数
1
解决办法
9377
查看次数

标签 统计

javascript ×3

browser ×1

firebug ×1

forwarding ×1

http ×1

jsp ×1

php ×1

profiler ×1

profiling ×1

sandbox ×1

widget ×1