javascript - 将 jQuery 函数作为字符串传递

标签 javascript jquery

故事背景:

  • 我有几个网页,我需要在其中完成很多输入字段的数据;

  • 为了不浪费时间(在测试时),我有一个 JavaScript 文件可以帮助我(我在 e2e 测试中使用它);

  • 我在浏览器中创建了一个书签,并将其添加为 URL:

enter image description here

URL VALUE: javascript:(function()document.body.appendChild(document.createElement('script')).src='../path_to_another_js_file.js')();
  • 此路径 src='../path_to_another_js_file.js' 将打开一个包含以下内容的 js 文件:
(function ($) {
    var fieldData = {
        "ContactData.EMail": "test@test.com",
        "ContactData.EMailConfirmation": "test@test.com",
        etc...
    };
})(jQuery);

问题:

我想从书签中删除 src='../path_to_another_js_file.js' 而不是该路径,以将此外部文件中的函数作为字符串传递,如下所示:

javascript:(function()document.body.appendChild(document.createElement('script'))
.textContent(String(
    (function ($) {
        var fieldData = {
            "ContactData.EMail": "test@test.com",
            "ContactData.EMailConfirmation": "test@test.com",
            //etc...
        };
    })(jQuery);
))})();

在任何情况下我都不能这样做,因为它不会被执行/它甚至不会在我的 FE 中创建 js 脚本,因为一些语法问题。

你们有没有遇到过和我一样的情况?? 10倍

最佳答案

您的代码应如下所示:

javascript:(function ($) {
    var fieldData = {
        "ContactData.EMail": "test@test.com",
        "ContactData.EMailConfirmation": "test@test.com",
        etc...
    };
})(jQuery);

不需要脚本标签。此外,您在 bookmarkelet 的主要功能中缺少花括号时出错。

关于javascript - 将 jQuery 函数作为字符串传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57820741/

相关文章:

Javascript 重定向连接 url 而不是重定向

javascript - 组合不带 '+' 的字符串

javascript - 使用重力效果拖动元素

javascript - 使用 highcharts 将累积图表转换为非累积图表

javascript - 如何获取表格的点击 td 索引?

javascript - 在加载包含哈希标签的链接时触发插件 swipebox

javascript - 如何保持下拉的持久化状态?

javascript - 删除 Javascript 中的空格

jquery - jQuery 或 CSS 选择器中允许使用括号吗?

jquery - 获取更改时的单选按钮值不起作用