javascript 传递 eval 变量

2023-11-24

我有 eval 函数,它需要从 php 执行 javascript。但我需要传递元素,这样我就可以将鼠标悬停在用户单击的链接上的提示上。

var globalEval = function globalEval(src, element) {
        if (window.execScript) {
            window.execScript(src);
            return;
        }
        var fn = function(element) {
            window.eval.call(window,src);
        };
        fn(element);
    };

我使用以下方式通过$(this) element

globalEval(js_code, $(this));
// js_code is = alert(element);

我收到未定义元素的错误,该元素在中定义globalEval();我怎样才能解决这个问题?


这是一个范围问题,因为全局 eval 没有调用与变量相同范围内的代码element。如果你必须使用eval虽然评估是邪恶的,您必须以一种允许您在所需环境中调用代码的方式来执行此操作。一种方法是将其包装为匿名函数,您可以为所选的环境变量提供参数。

例如

window.eval.call(window,'(function (element) {'+src+'})')(element);

这意味着src字符串被解析但未被调用eval因为它返回一个匿名函数。然后您调用它,传递您的数据,在本例中element.

测试一下var element = document.body, src = 'console.log(element.tagName)';你会看到它记录"BODY"。请注意,如果您想以这种方式设置全局变量(或函数),则必须将它们显式声明为全局(window.foobar = ...) 或者在匿名函数完成后它们将被GCd。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 传递 eval 变量 的相关文章

  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • Sequelize - 使用 es6 和模块运行迁移

    我不确定我是否做错了什么或者什么 我觉得我正在运行一个现代的 相当常见的堆栈 但我无法让新的 Sequelize v6 与我的设置完美配合 我在 Node v14 17 Sequelize v6 6 2 上 在我的 package json
  • 使用命名的成功/错误回调在 AngularJS 中声明一个 Promise

    我正在尝试做一些与 http 服务非常相似的事情 根据我的理解 http 返回一个 Promise 对象 使用它时 语法是 http success function data success callback error function
  • 无法读取未定义的“触及”属性

    为什么我会收到此错误无法读取未定义的属性 为什么无法读取formName controls email touched但它能够阅读formName get custDetails touched
  • 在 setInterval / setTimeout 中使用变量作为时间[重复]

    这个问题在这里已经有答案了 这是一个示例情况 var count time 1000 setInterval function count 1 time 上面的代码会将 count 变量加 1 即 1000 毫秒 看来 setInterva
  • React 应用程序中的 addEventListener 不起作用

    一些背景 我正在尝试消费自定义网络组件在 React 应用程序中并尝试监听来自 Web 组件的事件 我相信您不能只在自定义 Web 组件上以通常的反应方式处理事件 i e
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • jQuery 中的 $('') 与 $('')

    我看到人们以两种不同的方式在 jQuery 中创建 HTML 元素
  • 避免在 ES6 的函数内定位 this 的对象作用域

    例如 我正在使用 D3 js 运行一个项目 导入特定模块并调用它们的函数 Setup TypeScript ES6 导入特定的 D3 组件 角6 我有一个对象 在本例中是一个角度指令 并在 SVG 画布上绘制一些圆圈 并希望它们在拖动事件上
  • 使 Material UI Grid 项目的子项拉伸以适合父容器的剩余高度

    1 现状 我有一个包含 4 个网格项的 Material UI 网格容器 每个 Grid 项中都有一个 Typography 组件 其中包含标题和包含一些内容的 Card 如下所示 2 期望的外观 我希望卡片填充网格项目的剩余高度并且不超过
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • jQuery / Ajax:如何循环遍历数组作为 Ajax 成功函数的一部分

    我有一个阿贾克斯调用返回一个数组并需要对该数组中的每个值执行某些操作 到目前为止 我有以下内容 但这会返回以下错误 Uncaught TypeError Cannot use in operator to search for length
  • @aspnet/signalr 与 @microsoft/signalr javascript 库

    aspnet signalr 与 microsoft signalr javascript 库有什么区别 两者似乎都对 DotNetCore SignalR 有效 两者似乎都很活跃 在一些教程中 我找到 aspnet signalr 在Do
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • Javascript onload 不起作用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在使用
  • jQuery:单击外部元素以“关闭”使用toggleClass 出现的菜单

    我已经构建了一些导航 针对移动网络 它使用 jQuery 中的toggleClass 方法来隐藏和显示菜单 单击 MENU 图标 按钮可在菜单 div 上打开和关闭类 active 显示 隐藏 我一直在拼命寻找一种通过单击菜单外部 页面上的
  • 如何为 Imagus 悬停缩放扩展开发自定义过滤器?

    当我读到关于悬停缩放是邪恶的 http www reddit com r YouShouldKnow comments 1wjrc8 ysk that the hover zoom extension is spyware 哎呀 有两篇文章
  • 检测浏览器选项卡是否具有焦点

    是否有可靠的跨浏览器方法来检测选项卡是否具有焦点 场景是 我们有一个定期轮询股票价格的应用程序 如果页面没有焦点 我们可以停止轮询并为每个人节省流量噪音 特别是当人们喜欢打开具有不同投资组合的多个选项卡时 Is window onblur

随机推荐

  • Pandas-如果值大于0,则将一列除以另一列?

    我有一个 pandas 数据框 其中包含日期 项目和 2 个值 我想要做的就是输出另一列 如果 B 列大于 0 则输出 A 列 B 列的乘积 如果 B 列等于 0 则输出 0 date item A B C 1 1 2017 a 0 3 0
  • 创建没有 persistence.xml 配置文件的 JPA EntityManager

    有没有办法初始化EntityManager没有定义持久性单元 您能否提供创建实体管理器所需的所有属性 我需要创建EntityManager来自用户在运行时指定的值 更新中persistence xml并且重新编译不是一个选择 任何关于如何做
  • THREE.JS:在网格内部查看几何图形

    当输入几何体 例如球体网格 时 它的行为就像几何体不存在一样 颜色和纹理从外面可见 但是一旦我放大网格 这些属性就消失了 如何使球体网格的颜色和纹理在网格内部可见 mesh material side THREE DoubleSide Or
  • 会话 Bean 的会话状态

    我正在读一本关于 Java EE 6 的书 我遇到了以下部分 无状态 会话 bean 不包含方法之间的对话状态 并且任何 实例可用于任何客户端 有状态 会话bean包含会话状态 必须保留该状态 单个用户的跨方法 对话状态 是什么意思 有人用
  • Linq 中的分层数据 - 选项和性能

    我有一些分层数据 每个条目都有一个 id 和一个 可为空 父条目 id 我想检索树中给定条目下的所有条目 这是在 SQL Server 2005 数据库中 我正在 C 3 5 中使用 LINQ to SQL 查询它 LINQ to SQL
  • 突出显示所有字段的匹配结果

    我希望突出显示匹配的结果 如果我提到字段名称并且它返回突出显示的文本 这对我有用 但是如果我将该字段指定为 all 它不会返回任何值 这对我有用 curl XGET http localhost 9200 my index my type
  • 如何使用 NSCoder 在 swift 中对枚举进行编码?

    背景 我正在尝试使用 NSCoding 协议对字符串样式枚举进行编码 但在与字符串之间转换和返回时遇到错误 我在解码和编码时遇到以下错误 字符串无法转换为 Stage 额外参数 ForKey 在调用中 Code enum Stage Str
  • 克利翁和 CMake。如何添加库(*.so)

    我正在尝试在 Clion IDE 中编写 c c 代码 我需要在我的项目中添加一些共享库 此时 我只想运行主函数 它将添加我的外部库 libAPIenergy so 具有的所有函数 我尝试了该论坛的一些解决方案 但没有一个有帮助 下面我将提
  • 在圆形图像视图中显示时图像被拉伸

    下面是我的 RoundedImageView 类 它扩展了 ImageView public class RoundedImageView extends ImageView public RoundedImageView Context
  • 突出显示 NSToolbarItems

    我想突出显示所选内容NSToolbarItem就像例如在 Adium 中 参见屏幕截图 突出显示http a2 s3 p quickshareit com files screenshot b28b67ba9411513d6 png 有简单
  • 如何将 Firestore 中的地图数组转换为 Dart 地图列表

    我正在尝试使用 Flutter 和 Firestore 构建一个应用程序 但我对必须将数据从 Firestore 实现为 Dart 语言的方式感到困惑 所以问题是我的 Firestore 中有一个地图数组 其中的每个元素该数组代表这样的地图
  • “左值”和“右值”的命名背后的原因是什么?

    C C 中 左值 和 右值 的命名背后的原因是什么 标准中提到了这一点 左值 历史上如此称呼 因为左值可能出现在赋值表达式的左侧 右值 历史上如此称呼 因为右值可以出现在赋值表达式的右侧 也就是说 左值是您可以分配给的东西 右值是您可以从中
  • 适用于 Java 的免费/开源测试生成器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 Java 是否有任何库可以为现有代码生成单元测试或单元测试框架 我正在寻找类似的东西验算师 理想情况下 它会生成遵循 JUnit4 或 TestNG 约定的代码 看起来像Agitar
  • 无法写入 JSON:JsonObject;嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException: JsonObject

    春季启动2 5 PostMapping cart product public Response addProduct RequestBody Map
  • 暂停 getUserMedia 返回的流

    我已将 getUserMedia 返回的流引导到
  • 通过 POP3 自动检查退回的电子邮件? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 谁能推荐可以检查退回邮件以及退回原因的软件或 NET 库 我收到退回的电子邮件到我可以阅读的 pop3 帐户 我需要它来保持我的用户数据库中不含无效
  • 如何打印pdf.js文档?

    我已经用 pdf js 生成了一个文档 并且它显示正确 我没有打印按钮 如何添加按钮以允许用户打印 我正在使用 Chrome 尝试使用 javascript 函数window print 这将打开打印对话框 您必须在 html 中添加一个按
  • 密码验证 REGEX 禁止空格

    密码不能包含空格 必须至少包含一个数字字符 必须包含 1 个大写字母 长度至少为 8 个字符 最多 15 个 这就是我所拥有的 它可以执行除空白规则之外的所有操作 d A Z 8 15 为此添加什么 多谢 语言 c asp RegularE
  • 拨打 USSD 代码?

    当我直接从听筒拨打时 它可以工作 例如 123 获取号码余额 但是 当我尝试在应用程序中执行相同的操作时 我遇到了问题 拨号器中显示的号码缺少结尾 我的应用程序中需要它 我希望我的应用程序应该支持所有 USSD 代码 有没有办法在应用程序中
  • javascript 传递 eval 变量

    我有 eval 函数 它需要从 php 执行 javascript 但我需要传递元素 这样我就可以将鼠标悬停在用户单击的链接上的提示上 var globalEval function globalEval src element if wi