首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将javascript字符串转换为javascript函数,同时保留正确的"this"?

问如何将javascript字符串转换为javascript函数,同时保留正确的"this"?
EN

Stack Overflow用户
提问于 2010-09-11 02:33:11
回答 2查看 260关注 0票数 0

浏览器元素有一个onpopupshowing属性,它是一个由几个javascript语句组成的字符串。

我想“覆盖”这段javascript。

如果这是一个函数,我只需将它赋给一个变量,将我的“覆盖”函数赋给element属性,然后(如果需要)从我的覆盖函数中调用原始函数,就像这样:

代码语言:javascript
复制
var oldfunc;
function myoverrridingfunc () { my statement; oldfunc(); my other statement; }

oldfunc = element.getAttribute( "onpopupshowing" )
element.setAttribute( "onpopupshowing", myoverrridingfunc );

但是element.getAttribute( "onpopupshowing“)不是一个函数,它是一个字符串。

我可以使用function对象将字符串转换为函数,但该字符串包含对this的引用。如何保留正确的this

截取/覆盖这段脚本的最佳方式是什么?注意:这只需要在Firefox中工作,而不需要在任何版本的java/ECMAscript中工作。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-11 02:36:13

代码语言:javascript
复制
var oldfuncStr = element.getAttribute("onpopupshowing");
element.removeAttribute("onpopupshowing");
var oldfunc = new Function(oldfuncStr);
element.addEventListener("popupshowing", function()
{
  myStatement;
  oldfunc.call(this);
  otherStatement;
}, false);

call专门用于指定this。我在火狐上进行了测试,但使用的是onclick事件而不是onpopupshowing。

票数 1
EN

Stack Overflow用户

发布于 2010-09-11 07:51:36

也许你想得太多了。为什么不用引号将JavaScript语句括起来并将其赋值给属性呢?如果该属性要求JavaScript语句为字符串,那么我不希望分配函数引用也能正常工作。(是吗?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3687304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档