小编Rob*_*b W的帖子

如何修改Chrome扩展程序中devtools面板下的内容?

我正在开发Google Extension,我正在为开发人员工具添加新面板,它似乎对我来说很好.但我不知道如何通过JavaScript修改面板的内容.

谁能开导我?

google-chrome-extension google-chrome-devtools

2
推荐指数
1
解决办法
3471
查看次数

从Chrome中的userscript转换时保持相同的ID

我目前正在将用户脚本更新为Chrome扩展程序,但由于新ID不同,因此不会更新旧扩展程序,而是添加新扩展程序.

有没有办法将用户脚本转换为Chrome扩展程序并保留相同的ID?

由于没有用户脚本的密钥文件,我认为它可能,
但如何?

google-chrome userscripts google-chrome-extension

2
推荐指数
1
解决办法
1002
查看次数

XMLHttpRequest成功没有明确权限?也许CORS?

我开发了使用YouTube Data API v2的Google Chrome扩展程序.清单中的我的权限字段如下所示,因为脚本是在youtube.com下的页面中注入的,我还需要访问选项卡:

"permissions": ["tabs", "*://*.youtube.com/*"]
Run Code Online (Sandbox Code Playgroud)

这也适用于我向YouTube Data API v2发出请求,因为该请求是针对http://gdata.youtube.com/进行的,因此它是同一个域.但现在我正在迁移到YouTube Data API v3,请求必须完成http://www.googleapis.com/youtube/v3/(请注意HTTPS而不是HTTP).但令人惊讶的是,我的请求在没有添加任何新权限的情况下完美运行.

我知道,我问的是一些似乎不是问题的东西,但我个人认为我在软件中不理解的任何行为都是一个问题.为什么会这样?我不应该添加权限"*://*.googleapis.com/*",以便我的API的XMLHttpRequest请求工作?

我也有一些猜测:HTTP Access Control标头.我的请求会发送Origin带有值的标头chrome-extension://myExtensionId.API的答案还包含以下标题:

Access-Control-Allow-Origin: chrome-extension://myExtensionId

但这可能是Chrome允许我在没有清单中定义的额外权限的情况下进行跨源XMLHttpRequest的原因吗?不确定,显然在Google API,YouTube Data API v3或Chrome Extensions开发人员文档中没有记录.

xmlhttprequest google-api youtube-api cross-domain google-chrome-extension

2
推荐指数
1
解决办法
1521
查看次数

在标签中显示chrome.desktopCapture.chooseDesktopMedia中的视频?

我正在试用chrome.desktopCapture.chooseDesktopMediaChrome扩展程序,我可以得到一个桌面流就好了.

我使用以下内容将流转换blob:为后台脚本中的-URL,如下所示:

var objectUrl = URL.createObjectURL(stream);
Run Code Online (Sandbox Code Playgroud)

我似乎无法解决的是如何将其设置为注入页面上视频元素的src属性.

我尝试了以下,每个都不起作用:

在Background.js中:

var video     = document.getElementById("video");
var objectUrl = URL.createObjectURL(stream);
video.src     = objectUrl;
Run Code Online (Sandbox Code Playgroud)

在Content.js中

//objectUrl is a string received in a message from the background page by the content page
var video     = document.getElementById("video");
video.src     = objectUrl;
Run Code Online (Sandbox Code Playgroud)

我在javascript控制台中获得以下内容:

不允许加载本地资源:blob:chrome-extension:// panahgiakgfjeioddhenaabbacfmkclm/48ff3e53-ff6a-4bee-a1dd-1b8844591a91

如果我将消息中的URL一直发布到注入页面,我也会得到相同的结果.这有用吗?我真的很感激这里有任何建议.

在我的清单中我也有, "web_accessible_resources": [ "*" ]但这只是为了看它是否解决了这个问题(它没有).

google-chrome video-streaming google-chrome-extension screensharing

2
推荐指数
1
解决办法
2208
查看次数

嵌套元素中的多个事件

我正在尝试创建一个包含复选框和其他输入元素的Web表单,并且我想在单击包络div元素时向用户提供检查和取消选中框的abilituy.

这是HTML的一个例子:

<div class="line">
  <input type="checkbox" />
  <p>No, I don't want more newsletters</p>
</div>
Run Code Online (Sandbox Code Playgroud)

很简单.现在,当用户单击该复选框时,它将被选中/取消选中,并且事件会冒泡到div.line元素,这可能会更改其背景颜色或其他内容.现在,正如我所说,我还希望用户能够通过单击div来操作复选框值.听起来很简单; 我们只需在div.line元素中添加一个观察者,捕获事件并切换复选框值.好吧,这就是问题:当你点击复选框时,它的值就会被切换.但是,由于它位于div中,您还可以单击div,触发其观察者,然后再次切换复选框值.所以你最终到了开始的地方.两次切换发生.

我一直在破坏我的大脑,尝试所有不同的方法.自定义事件,自定义元素标志......在单个函数运行期间根本没有办法告诉它是否是被单击的复选框或者它是否是周围的div元素.但必须有办法,我只是看不到它.

有人有线索吗?顺便说一句,我正在使用Prototype.

javascript prototypejs

1
推荐指数
1
解决办法
183
查看次数

滚动时将div保持在视口或任意div内

我正在尝试找到一个scriptaculous脚本(或创建一个),它在我的视口中保持垂直导航栏"粘性".虽然这可能不是黑魔法(可以使用位置:固定css)但这种方法存在问题:如果导航栏比视口高度长,则访问者将无法看到整个导航.所以我希望导航栏不要将视口保留在顶部,但不要将父容器留在底部.它应该立即跟随滚动事件而不用花哨/弹跳动画.

那可能吗?谷歌透露没有什么对我有用.你可能会从slashdot的文章评论导航器或谷歌视频的播放器框中知道这种效果.

更新:基本上这将是jQuery插件scrollFollow的重写.如果它缺少动画就没问题,因为我不会使用它们.但它应该能够保持在定义的父容器内而不会剪切.不需要cookie处理.

javascript css scriptaculous prototypejs

1
推荐指数
1
解决办法
6736
查看次数

使用Prototype偏移高度

cumulativeOffset在Internet Explorer 8和Firefox 3.5中的Prototype 函数中获得了不同的值,这些值在复杂的布局中有几个具有填充和边距的元素.

这似乎是一个已知的错误:讨论

有人知道基于原型或原型兼容的方法可靠地确定静态定位元件的偏移高度吗?

javascript css prototypejs

1
推荐指数
1
解决办法
2561
查看次数

Rails 3 UJS驱动程序事件

根据Simone Carletti 博客文章,Rails 3 ajax助手已经改变了很多.我们应该使用rails 3编写比使用rails 2更多的javascript.

我试图找出如何显示ajax加载gif-而ajax查询正在运行 - 在"rails 3 way"中.我想出了这种代码,它使用Rails 3 UJS驱动程序发送的javascript事件.这个例子使用原型:

<div id="wait" style="display:none">
    <img src="/images/ajax-loader.gif"> Please wait...
</div>

<div>
    <%= link_to 'Get', 'finished', :id => "mylink", :remote => true %>
</div>

<%= javascript_tag do %>
        Event.observe('mylink', 'ajax:before', function(event) {
            $('wait').show();
        });
        Event.observe('mylink', 'ajax:complete', function(event) {
            $('wait').hide();
        });
<% end %>
Run Code Online (Sandbox Code Playgroud)

这很好用,但我希望有可能在原型和scriptaculous助手的帮助下编写这些ajax事件"触发器",就像我们使用link_to_function一样:

<%= 
  link_to_function("toggle visibility") do |page|
    page.toggle "wait"
  end
%>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,或者我们应该直接在javascript中编写ajax事件"触发器",无论是原型还是jquery?

最好的祝福,

Philippe Lang

ajax ruby-on-rails prototypejs ujs

1
推荐指数
1
解决办法
3567
查看次数

为什么prototype.js会干扰无关的javascript操作?

建立一个网站.当我订购这样的标签时,LightCycle可以工作,但Lightbox不能:

Lightcycle工作,Lightbox不:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>    
<script type="text/javascript" src="./js/prototype.js"></script>
Run Code Online (Sandbox Code Playgroud)

当我这样订购时,Lightbox可以工作,但是LightCycle没有:

灯箱工作,LightCycle不:

<script type="text/javascript" src="./js/prototype.js"></script>    
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

令人沮丧.

html javascript jquery conflict prototypejs

1
推荐指数
1
解决办法
1196
查看次数

在DOM元素上使用Javascript的typeof来检查undefined(IE问题)

我想迭代一个DOM元素列表(复选框),并且只要定义了这个列表就继续.元素是'c1r1','c1r2','c1r3'等.一旦我遇到一个未定义的元素,我就停止了.问题似乎是使用带有DOM元素的typeof.

这是有问题的代码:

function domIsDefined(idString){
    alert(idString);
    var isItDefined = (typeof $(idString) != 'undefined');
    alert(isItDefined);
    return isItDefined;
}
...
for(i=1; domIsDefined('c1r' + i); i++){
    if($('c1r' + i).checked==true){
        // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

问题的关键在于这一行:

var isItDefined = (typeof $(idString) != 'undefined');
Run Code Online (Sandbox Code Playgroud)

正如我所发现的那样,问题是typeof $(idString)总是返回对象,无论它是否被定义.有没有什么好方法可以做这种事情?我想我会尽早尝试捕获并检查.checked属性,但这感觉很恶心.

javascript dom typeof undefined prototypejs

1
推荐指数
1
解决办法
1784
查看次数