通过 Chrome 上的 KBX 扩展程序安装时 Kynetx 应用程序无法运行

2023-12-02

我的应用程序正在加载外部 javascript 文件jQuery.getScript()。当我使用书签或扩展程序启动应用程序时,一切正常。当应用程序通过 KBX 安装时,虽然在内部ChromeKBX扩展javascript 文件中包含的函数无法再在回调中访问,我得到:未捕获的引用错误:myfunc 未定义 .

有什么技巧可以访问包含的功能吗?

小书签 : javascript:(function(){var d=document;var s=d.createElement('script');s.text="KOBJ_config={'rids':['a1135x30']};";d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js';d.body.appendChild(l);})()

Chrome 扩展程序: crx

通过 KBX 安装的网址:KBX 上的应用程序

这是规则集:

ruleset a1135x30 {
  meta {
    name "test_external_js_loading"
    description <<
debugging external loading in kbx
    >>
    author "loic devaux"
    logging on
  }

  dispatch {
    domain ".*"

  }

  global {

  }

  rule first_rule {
    select when pageview ".*" setting ()
    // pre {   }
    // notify("Hello World", "This is a sample rule.");
    {
        emit <|

        $K.getScript('http\:\/\/lolo.asia/kynetx_debug/js/myfunc.js',function() {
                myfunc();
                /*
                * myfunc.js content:
                myfunc = function(){
                console.log('running myfunc');
                };
                */
            }
        );

        |>
    }  
  }
}

我不完全确定您的问题与 KBX 运行代码的沙盒环境有关,但我认为可能与此有关。这是我写的一篇关于处理 KBX 沙盒环境的文章http://geek.michaelgrace.org/2011/03/kynetxs-new-sandboxed-browser-extensions/

来自博客文章

我最近发布了我的“老派转发”Kynetx 应用程序在 Kynetx 应用商店中查找新发布的浏览器扩展。我非常喜欢新的扩展以及它们为用户和开发人员所做的一切。当我在应用程序商店中发布该应用程序时,我忘记了新扩展程序是沙盒的。 由于扩展程序是沙盒的,因此扩展程序中的所有脚本的运行方式与之前的 Kynetx 扩展程序中的运行方式略有不同。无需过多了解技术细节,以前的扩展只是将 JavaScript 注入到页面中,而新扩展在沙箱中运行 JavaScript,该沙箱可以访问 DOM,但无法访问页面上的其他任何内容。由于这一更改,我的转发应用程序崩溃了,因为我使用 Twitter.com 加载的 jQuery 来调出新的推文框(我这样做是因为 Twitter.com 使用该库来绑定单击事件并触发该事件,它必须来自绑定它的同一个库)。值得庆幸的是,在朋友的帮助下,我能够解决 Firefox 和 Chrome 的沙盒环境。 我是怎么做到的…… 如果应用程序不在沙箱内运行,我只需访问 Twitter.com 加载的 jQuery 即可打开新的推文框

$("#new-tweet").trigger("click");

从 Firefox 沙箱内我可以访问沙箱外的页面

window['$']("#new-tweet").trigger("click");

如果我在 Chrome 沙箱中,我可以创建一个脚本元素,其中包含我想要执行的 JavaScript。粗糙,但有效。 :)

var trigger_click_script = document.createElement("script");
var fallback = "window['$']('#new-tweet').trigger('click');";
trigger_click_script.innerHTML = fallback;
document.getElementsByTagName("head")[0].appendChild(trigger_click_script);

这是我最终得到的 JavaScript 代码,当用户单击转发按钮时执行该代码。

// get stuff to retweet
var tweet = $K(this).parents(".tweet-content").find(".tweet-text").text();
var name = $K(this).parents(".tweet-content").find(".tweet-screen-name").text();

// build tweet
var retweet = "RT @"+name+" "+tweet;

// open new tweet box
$("#new-tweet").trigger("click");

// hack for FF sandbox
if ($("#tweet-dialog:visible").length === 0) {
  window['$']("#new-tweet").trigger("click");
}

// put tweet in new tweet box
$K(".draggable textarea.twitter-anywhere-tweet-box-editor").val(retweet).focus();
$K("#tweet_dialog a.tweet-button.button.disabled").removeClass("disabled");

// hack for chrome sandbox
if ($("#tweet-dialog:visible").length === 0) {
  var fallback = "window['$']('#new-tweet').trigger('click'); ";
  fallback += "window['$']('.draggable textarea.twitter-anywhere-tweet-box-editor').val('"+retweet+"').focus(); ";
  fallback += "window['$']('#tweet_dialog a.tweet-button.button.disabled').removeClass('disabled'); ";
  var trigger_click_script = document.createElement("script");
  trigger_click_script.innerHTML = fallback;
  document.getElementsByTagName("head")[0].appendChild(trigger_click_script);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Chrome 上的 KBX 扩展程序安装时 Kynetx 应用程序无法运行 的相关文章

  • 停止 ASP.NET 按钮的页面重新加载

    NET 应用程序中 我插入了一个调用 Javascript 函数的按钮 OnClientClick事件 和 VB NET 函数 OnClick event
  • 如何向 DOM 添加支持 Angular 的元素?

    我想以编程方式添加一些支持 Angular 的 DOM 元素 实际上 我可能需要添加自定义组件 我该怎么做 这是一个简单的小提琴来演示这个问题 http jsfiddle net ZJSz4 2 http jsfiddle net ZJSz
  • 是否有类似 jQuery 的 CSS/HTML 选择器可以在 C# 中使用?

    我想知道是否有一个类似 jQuery 的 css 选择器可以在 C 中使用 目前 我正在使用正则表达式解析一些 html 字符串 并认为在 jQuery 中使用类似 css 选择器的东西来匹配我想要的元素会更好 更新 10 18 2012
  • 使用jquery,下拉列表选择更改时如何重定向?

    我有一个下拉列表 如果有人选择一个选项 我想根据选择重定向到另一个页面 我怎样才能通过 jquery 做到这一点 将逻辑绑定到 change 事件 并从中获取当前值 val 以确定用户应该被重定向到哪里 此示例假设位置直接存储在值本身中 m
  • 添加/更改 URL 参数并重定向到新 URL

    If the view allURL 中不存在参数 我需要将其与值一起添加到 URL 的末尾 如果它确实存在 那么我需要能够仅更改该值而不创建新的 URL 因为它之前可能有也可能没有其他参数 我找到了这个功能 但我无法让它工作 https
  • Backbone.js 和本地存储。必须指定“url”属性或函数

    我正在提高有关 Backbone js 的知识 并从教程中获取了此代码示例 http bardevblog wordpress com 2012 01 16 understanding backbone js simple example
  • 如何从 HTML 图表中删除网址 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在 HTML 中创建一个图表 我正在使用 API amCharts 但问题是它在图表中显示文本 amchart 我怎样才能删除该文本
  • Mustache.js 只允许换行,转义其他 HTML

    我正在根据用户输入创建评论 并在用户单击 提交 后使用 Mustache js 渲染它们 我意识到我可以替换用户输入换行符 n with br 呈现为 HTML 中断 例如 myString replace n g br 我意识到我可以使用
  • 如何在 html5 中加载部分 html? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 询问我们的问题推荐或查找工具 库或最喜欢的场外资源与 Stack Overflow 无关 因为它们往往会吸引固执己见的答案和垃圾邮件 反而
  • 样式表何时添加到 document.styleSheets

    我正在尝试使用 javascript 动态添加 css 样式表规则 例如示例 2here https developer mozilla org en DOM CSSStyleSheet insertRule 它在大多数情况下都有效 但似乎
  • 是否有跨浏览器的 jQuery contentEditable 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 jQuery 插件 库 它可以使 contentEditable 属性在所有主要浏览器中正常工作 我什至可以不用 IE6
  • 如何根据父网格的标题复选框选择/取消选择所有子复选框

    我正在开发一个 Web 应用程序 其中包含嵌套在另一个数据网格中的数据网格 在父网格中 我在标题模板中有一个复选框 在子网格中的项目模板中有另一个复选框 功能是 1 如果我单击父复选框 则应检查子网格中的所有项目 反之亦然 2 我的子网格中
  • jquery .html() 不适用于 ie8

    我有一个 jquery 函数 它对 Web 服务器上的 Web 服务方法进行 ajax 调用 该方法返回一个包含数据的 html 表 我正在使用 html 渲染 div 上的返回值 这适用于 Firefox Chrome Safari 但不
  • 删除多个类 (jQuery)

    有没有更好的方法来重写这个 element removeClass class1 removeClass class2 我无法使用removeClass 因为它会删除我不想要的所有课程 element removeClass class1
  • jQuery 仅附加一次

    所以我有这个 jQuery document ready function var nav nav var logo img src img logo png window scroll function if this scrollTop
  • codemirror - 在编辑器内检测并创建链接

    我正在使用 codemirror 配置为显示 javascript 我有这样的代码 var ref http www example com test html var ref2 http www example com test2 htm
  • JSON 数据的动态表单(不同类型)

    我尝试使用 JSON 中的数据在 AngularJS 中创建动态表单 我有这个工作 HTML p p
  • 返回语句后的声明

    function f return f1 function f1 return 5 f returns 5 为什么这有效 之后声明局部函数有什么好处return 这是好的做法吗 它之所以有效 是因为函数声明都是由解释器在第一次传递时评估的
  • 理解“窗口”对象[重复]

    这个问题在这里已经有答案了 可能的重复 JS 窗口全局对象 https stackoverflow com questions 10035771 js window global object 如何window对象工作 我知道它是顶级对象并
  • 未终止的字符串文字

    我有一个 php 脚本 可以在我的服务器上上传 mp3 文件 我使用 上传 有一个事件 onSelect 文档 http www uploadify com documentation events onselect 当文件上传时调用 使用

随机推荐

  • 如何在 Dart 中编码为 UTF16 Little Endian?

    我正在尝试使用 Dart 来操作程序使用的一些系统变量 我遇到过这样的问题飞镖的utf软件包已停产 并且我还没有找到任何方法来编码为 UTF 16 Little EndianFile 写 Dart 中是否有可以进行字节到 UTF 16 LE
  • 较新的 JRE 版本可以运行使用较旧的 JDK 版本编译的 Java 程序吗?

    运行用 Java 版本 1 6 编译的 Java 程序和相关库时我会遇到任何问题吗 and1 7 我使用 1 7 进行编译 而某些库是使用 1 6 进行编译 并在 1 7 JRE 中运行整个程序 As answered already yo
  • OpenGL 纹理映射顽固地拒绝工作

    我正在用 D 编程语言使用 SDL 和 OpenGL 编写 2D 游戏 目前它只是尝试将纹理映射的四边形渲染到屏幕上 问题是 整个纹理映射部分似乎不太工作 尽管纹理显然加载得很好 分配了一个非零纹理编号 不会导致 glGetError 返回
  • 这里如何使用不完整的类型作为向量的模板参数?

    直到以下程序是合法的以及诸如此类的 include
  • Excel 中的随机数数组

    如何使用以下命令创建随机数数组RAND or RANDBETWEEN功能 我正在尝试用一个公式模拟 10 卷六面骰子 例如 的平均结果 我过去曾尝试过以下方法 但它只创建一个随机数并重复它 SUMPRODUCT ROW A1 A10 0 I
  • 基于 SQL 集的范围

    如何让 SQL 在不循环的情况下重复某些基于集合的操作任意次数 如何让 SQL 对一系列数字执行操作 我基本上是在寻找一种方法来执行基于集合的 for 循环 我知道我可以创建一个包含整数的小表 例如从 1 到 1000 然后将其用于该范围内
  • 如何在使用集合时将项目添加到集合中?

    下面的示例抛出 InvalidOperationException 集合已修改 枚举操作可能无法执行 执行代码时 var urls new List
  • Android WebView在查看html嵌套列表时加载空白

    我正在尝试使用 Android 将大小合理的 html 嵌套列表加载到 WebView 中 问题是当我尝试加载 html 时 它看起来是空白的 现在我已经尝试了几种不同的方法 我首先尝试了 W3Schools Try It Yourself
  • 是否可以在变量中获取 Phalcon\Mvc\View 渲染输出?

    我需要返回 json 对象 该对象具有带有渲染操作的属性 html 是否可以使用 Phalcon vew 进行本地操作 Example posts NewsPost find limit gt 10 view new Phalcon Mvc
  • ImportError:pyInstaller 之后没有名为“tkinter”的模块

    我想做一个可执行文件 但每次运行 exe 时它都会写入ImportError No module named tkinter 以及我在 Stack Overflow 上读到的所有内容都对我没有帮助 我的 python 程序很简单 ODE 求
  • 当我尝试创建触发器时 PostgreSQL 出现语法错误

    我想在 PostgreSQL 中创建触发器 逻辑很简单 我需要触发器 如果 published at更新并且writing at为空 则将published at设置为writing at 我写了这个 但失败了 有人有想法吗 CREATE
  • 为每个子图提供标题 - R Shiny

    我正在尝试使用 blondeclover 的以下代码创建绘图 代码如下 library shiny library ggplot2 library plotly library grid shinyApp ui ui fluidPage f
  • Google 柱形图单个日期和值显示为多个相邻条

    数据表结构如下 cols id label Date pattern type date id Col1 label Col1 Label pattern type number rows c v Date 2017 5 27 v 213
  • WebDriver 关闭弹出窗口

    我的网络驱动程序测试因出现弹出窗口而卡住 我如何在测试中关闭它 这是我的代码 Test public void canGoToSomePage throws Exception final WebDriver webDriver getFi
  • Activity崩溃后如何自动重启?

    有没有办法让我创建一个服务来跟踪我的活动类并在崩溃后重新启动它 请注意 我不能使用未捕获的处理程序线程方法来重新启动我的应用程序 我的应用程序应该会崩溃 不用担心那部分 我的应用程序很简单 就像这样 private class AudioR
  • 替换 MS SQL Server 中的特定 Unicode 字符

    我正在使用 MS SQL Server Express 2012 我在删除 unicode 字符时遇到问题U 02CC 十进制 716 在网格结果中 原文是 e r 我像这样尝试过 它不起作用 SELECT ColumnTextWithUn
  • 最简单的 MySQL 到 MySQLi 过渡

    我目前正在使用我在课堂上教授的已贬值的MySQL 我发现这不是正确的方法 有两个更好的选择 MySQLi 和更好的 PDO 虽然我发现切换到 PDO 对我来说有点困难 因为我对 OOP 一无所知 但我认为至少切换到 MySQLi 是必须的
  • 修复“包含重复的‘编译’项目。” Visual Studio 中的错误

    这是一个非常烦人的 VS 错误 我使用的是 VS 2019 16 8 1 我花了很多时间来修复它 包含重复的 编译 项目 NET SDK 包括 默认情况下从项目目录 编译 项目 你可以 从项目文件中删除这些项目 或设置 如果需要 可将 En
  • MySQL变量存储数据库名称

    我有一个很长的脚本 需要在几个不同的数据库上运行 所有数据库都具有相同的表和字段名称 我想做的是这样的 1 SET TARGET DATABASE beta 2 SET SOURCE DATABASE sandbox 3 4 CREATE
  • 通过 Chrome 上的 KBX 扩展程序安装时 Kynetx 应用程序无法运行

    我的应用程序正在加载外部 javascript 文件jQuery getScript 当我使用书签或扩展程序启动应用程序时 一切正常 当应用程序通过 KBX 安装时 虽然在内部Chrome与KBX扩展javascript 文件中包含的函数无