部署 Google Chrome 扩展; Adobe Flash Player 已停止潜在的不安全操作

2024-02-20

我想知道如何最好地处理 Google Chrome 扩展内部没有足够权限的问题。我正在与 YouTube API 交互,但我没有使用 swfobject.js,只是使用 am embdeeded div。我不认为这会引起我的安全问题,但也许确实如此。

在开发过程中,我必须导航到 Adob​​e 的 flash 播放器安全页面并将我的开发文件夹指定为“安全”位置。在部署中,我没有能力做到这一点。我不希望我的用户必须在 Flash Player 安全性上单击“全部允许”,但我没有看到其他方法来实现我的结果。

有人有处理这个问题的经验吗?我有什么选择?

似乎是重复的Chrome 扩展程序中的 SWFobject - API 不可用 https://stackoverflow.com/questions/7274415/swfobject-in-a-chrome-extension-api-unavaiable但仍未得到答复。

Source: https://github.com/MeoMix/YouPod https://github.com/MeoMix/YouPod

要运行:从存储库中提取,加载 Chrome,单击扳手,转到扩展,检查“开发人员工具”-> 加载解压的扩展并浏览到该文件夹​​。

行动中:http://www.meomixes.com/Chrome%20Extension.crx http://www.meomixes.com/Chrome%20Extension.crx


由于来源限制,您不能使用<object>元素。相反,嵌入一个<iframe>并使用 YouTube 播放器 API 与框架进行通信。

更换你的function onYouTubePlayerReady and function Initialize(playlist)与以下内容(在background.js http://pastebin.com/cQFZQWQe):

function Initialize(playlist) {
    port = chrome.extension.connect({ name: "statusPoller" });
    if (!player) {
        YT_ready(function() {
            var frameID = getFrameID("MusicHolder");
            if (frameID) {
                player = new YT.Player(frameID, {
                    events: {
                        "onReady": function() {
                            player.cueVideoById(playlist[0].ID, 0);
                        },
                        "onStateChange": onPlayerStateChange
                    }
                });
            }
        });
    } else {
        // Only reload if the player is not playing. Otherwise, the music
        // stops when re-opening the popup.
        if (player.getPlayerState && player.getPlayerState() != PLAYING) {
            player.cueVideoById(playlist[0].ID, 0);
        }
    }
}

要使之前的代码正常工作,您必须加载另一个脚本background.htm http://pastebin.com/rWJNpc1G。的内容youtube-player-api-helper.js http://pastebin.com/KfsRj9rD基于我之前的回答使用 JavaScript 或 jQuery 监听 Youtube 事件 https://stackoverflow.com/a/7988536/938089?listening-for-youtube-event-in-javascript-or-jquery:

// @description Easier way to implement the YouTube JavaScript API
// @author      Rob W
// @global      getFrameID(id) Quick way to find the iframe object which corresponds to the given ID.
// @global      YT_ready(Function:function [, Boolean:qeue_at_start])
// @global      onYouTubePlayerAPIReady()  - Used to trigger the qeued functions
// @website     https://stackoverflow.com/a/7988536/938089?listening-for-youtube-event-in-javascript-or-jquery

function getFrameID(id) {
    var elem = document.getElementById(id);
    if (elem) {
        if(/^iframe$/i.test(elem.tagName)) return id; //Frame, OK
        // else: Look for frame
        var elems = elem.getElementsByTagName("iframe");
        if (!elems.length) return null; //No iframe found, FAILURE
        for (var i=0; i<elems.length; i++) {
           if (/^https?:\/\/(?:www\.)?youtube(?:-nocookie)?\.com(\/|$)/i.test(elems[i].src)) break;
        }
        elem = elems[i]; //The only, or the best iFrame
        if (elem.id) return elem.id; //Existing ID, return it
        // else: Create a new ID
        do { //Keep postfixing `-frame` until the ID is unique
            id += "-frame";
        } while (document.getElementById(id));
        elem.id = id;
        return id;
    }
    // If no element, return null.
    return null;
}

// Define YT_ready function.
var YT_ready = (function() {
    var onReady_funcs = [], api_isReady = false;
    /* @param func function     Function to execute on ready
     * @param func Boolean      If true, all qeued functions are executed
     * @param b_before Boolean  If true, the func will added to the first
                                 position in the queue*/
    return function(func, b_before) {
        if (func === true) {
            api_isReady = true;
            for (var i=0; i<onReady_funcs.length; i++){
                // Removes the first func from the array, and execute func
                onReady_funcs.shift()();
            }
        }
        else if(typeof func == "function") {
            if (api_isReady) func();
            else onReady_funcs[b_before?"unshift":"push"](func); 
        }
    }
})();
// This function will be called when the API is fully loaded
function onYouTubePlayerAPIReady() {YT_ready(true);}

// Load YouTube Frame API
(function() { //Closure, to not leak to the scope
  var s = document.createElement("script");
  s.src = "http://www.youtube.com/player_api"; /* Load Player API*/
  var before = document.getElementsByTagName("script")[0];
  before.parentNode.insertBefore(s, before);
})();

额外变更的说明(奖励):

  • background.htm: <!DOCTYPE html />是无效的。它应该是:<!DOCTYPE html>.
  • All .htm files: The type属性是可选的<script>标签。即使您想指定一个,也可以使用application/javascript代替text/javascript。两者都可以在 Chrome 扩展中使用,但第一个更正确。
  • popup.js: Changed detection of ctrl+c. Instead of detecting and remembering whether Ctrl was pressed, use the e.ctrlKey property.
  • 还有更多。看一下popup.js http://pastebin.com/kVwtEK9e,并搜索RobW:找到我的注释。

修改文件

更新文件摘要(基于您的Github 仓库 https://github.com/MeoMix/YouPod/tree/master/YouPod):

  • YouPod/background.htm http://pastebin.com/rWJNpc1G
  • YouPod/popup.htm http://pastebin.com/grrZAVn9 (文档类型修复,占位符焦点的评论建议)
  • YouPod/js/background.js http://pastebin.com/cQFZQWQe
  • YouPod/js/popup.js http://pastebin.com/kVwtEK9e
  • YouPad/js/youtube-player-api-helper.js http://pastebin.com/KfsRj9rD New
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

部署 Google Chrome 扩展; Adobe Flash Player 已停止潜在的不安全操作 的相关文章

  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • 如何使用 Swift 获取 YouTube 频道的所有播放列表?

    我的问题不是关于从一般频道检索视频 我只想获取该频道创建的所有 播放列表 并检索每个播放列表的缩略图 标题和视频数量 这是一个 YouTube 频道示例 正如您所看到的 有很多已创建的播放列表 截至目前 我只能获取某个频道最新上传的视频 在
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • Youtube 退出全屏模式 TextView 可见性问题

    我正在全屏模式下播放视频 当我单击后退按钮时 我可以退出全屏模式 但无法显示我在全屏情况下隐藏的 TextView 要在全屏模式下隐藏 textView 我使用以下代码 Override public void onInitializati
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 单击关闭按钮后不显示 Google 一键登录 UI

    我正在尝试按照本指南使新的谷歌一键登录工作 https developers google com identity one tap web https developers google com identity one tap web
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • Youtube as3 API 似乎不再起作用

    我正在使用 as3 Youtube 官方 API 我需要在 swf 文件中加载 API 播放器 我已经在几个项目上完成了 一切都很好 但几个小时后 我的所有项目现在都坏了 这是崩溃的代码片段 Security allowDomain www
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ

随机推荐

  • Stripe 动态付款

    我正在与 Stripe 作斗争 我正在使用 PHP 并且正在尝试建立一个简单的商店 没有 CMS 想知道如何将金额传递到 charge php 以便我可以对不同的产品收取不同的金额 这里是我的代码 charge Stripe Charge
  • 为什么JDK NIO使用这么多anon_inode文件描述符?

    我正在使用 Sun 的 JDK 1 6 0 26 和 NIO 带有 Netty 在 lsof 中我看到数百个文件描述符anon inode lsof np 11225 fgrep w anon inode java 11225 nobody
  • 等待多部分图像发送完成

    我正在 iOS7 中实现一个应用程序 它是一种社交网络应用程序 其中包含带有图像的帖子和保存从客户端发送的所有数据的后端 iOS客户端通过json发送帖子信息 发送信息后 它开始使用多部分形式发送图像AFNetworking 发送图像时需要
  • Java 中的 Lambda 表达式?

    我需要将部分项目从 C 切换到 Java 但在此之前 我想仔细 全面地比较两种语言 关于lambda表达式 我可以通过C 编写非常优雅的代码 问题是如何在Java中优雅地实现相同的功能 提前致谢 class Program enum Gen
  • Java Swing JFrame 背景未显示

    我不知道为什么我的 Jframe 上没有显示背景颜色 下面是我尝试过的代码 当我打电话时 AnimatedDialogBox animatedDialogBox new AnimatedDialogBox Saving TransSet f
  • 使用 php 和 dompdf 在 pdf 中导出变音符号

    我在导出 PDF 文档中的重音字符 例如 时遇到问题 这些字符通常存储在数据库中 但是当我尝试导出到 PDF 时 字符 变换为 C5 9F等等 我认为问题出在 dompdf 库上 现在我做preg replace但这不是一个好的解决方案 有
  • Spring Data + Redis 带自动递增键

    我正在尝试使用 Redis 进行 Spring 数据 CRUD 操作 但主要需要将自动增量密钥存储在 Redis 中 我尝试过使用Redis对SpringData进行简单的CRUD操作 但没有自动递增键功能 我怎样才能实现这个目标 如果您使
  • 查询中跨越多行的 SQL 字符串值

    UPDATE 简介可能包含撇号 请参阅更新的示例 我有一个 SQL 查询 它的值跨越多行 导致查询失败 UPDATE User SET UserId 12345 Name J Doe Location USA Bio I m a bio t
  • Typescript 对象声明,其中每个 prop 都有自己的泛型

    我正在尝试创建更动态的对象类型 现在我有以下内容 interface MyGeneric
  • ava.lang.NoClassDefFoundError:使用引导类加载器找不到类;没有可用的堆栈

    我在用docx4j从 SD 卡读取 Docx 文件 我有问题org apache log4j Logger图书馆 我什至尝试过从外部添加它 但它仍然给我同样的问题 构建 gradle apply plugin com android app
  • Python 中 switch 语句的替代品?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想用 Python 编写一个函数 根据输入索引的值返回不同的固定值 在其他语言中我会使
  • 使用 jQuery 通过 GET 方法调用 ASP.NET Web 服务函数

    我尝试使用 jQuery 通过 GET 方法调用 Web 服务函数 但遇到问题 这是一个网络服务代码 WebService Namespace http something com samples ScriptService WebServ
  • Firebase BigQuery 架构迁移:移至分区表?

    我收到了一封电子邮件 其中包含将 BigQuery 中之前的 Firebase 表迁移到新架构的说明 他们指出了这些说明 https support google com analytics answer 7029846 migration
  • 如何在tridion页面中包含动态组件演示?

    如何在页面中包含 引用动态组件模板 我创建了一个动态 CT 并发布了它 但想在页面中呈现其演示文稿 请建议 提前致谢 有很多方法可以在页面上添加动态呈现 直接方法 为此 您的组件演示应允许在页面上进行 查看允许在页面上使用动态装配 与所有其
  • 在 Visual Studio 2010 中从 Win32 调用方调试 .Net4 COM 注册程序集

    这是一个非常简单的设置 我简直不敢相信 但到目前为止我没有发现任何人遇到同样的问题 在VS2010中创建 Net4类库 创建一个最简单的 COM 对象 ComVisible true Guid CD157EBC C89D 40b6 B531
  • 避免“如果清理失败”重复的模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些代码看起来像这样 int myfunc blah a blah2 b blah3 c blah4 d blah5 e int
  • 如何在 Aurelia 中渲染不同的视图结构?

    我的 app html 中有一个通用的 html 结构 以便应用于所有页面
  • Java Swing Group 的复选框多选处理程序

    我有一组复选框 多项选择 我想知道使用 ListSelectionListener 选择了哪些项目 Box box new Box BoxLayout Y AXIS foodBox new JCheckBox proteinBox new
  • C# 中的内存不足异常

    我是 C 新手 因此 我不太确定我的程序有什么问题 该程序适用于小图像 但当它适用于 A4 大小的大图像时 会显示 内存不足异常 但是 如果不能处理大图像 该程序将毫无用处 我该如何解决这个问题 带着感谢 using System usin
  • 部署 Google Chrome 扩展; Adobe Flash Player 已停止潜在的不安全操作

    我想知道如何最好地处理 Google Chrome 扩展内部没有足够权限的问题 我正在与 YouTube API 交互 但我没有使用 swfobject js 只是使用 am embdeeded div 我不认为这会引起我的安全问题 但也许