Google Chrome在其chrome.webrequest API中包含一些功能(例如, http://developer.chrome.com/extensions/samples.html#12a7bf1490a26359eadf10917e37c5b9) 可用于将某些URL重定向到指定的网页。 Chrome扩展程序使用阻止事件侦听器(chrome.webRequest.onBeforeRequest.addListener)并对目标网址执行重定向。我如何在FireFox附加组件中做类似的事情?
答案 0 :(得分:0)
这个问题被问了很长时间。我不知道当时是否有解决方案。但现在我们可以使用Firefox WebExtensions API执行此类操作。
在大多数API中它与Chrome兼容(虽然其中一些不受支持,或者不完全支持)。
对于这个非常具体的问题,Firefox WebExtensions支持webRequest API,您可以像使用Chrome一样使用它:
<?php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Doctrine\ORM\EntityRepository;
class OrganisationUserType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('user_id', 'entity', array(
'class' => 'AppBundle:User',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.id > :id')
->setParameter('id', '1')
->orderBy('u.username', 'ASC');
},
'choice_label' => 'username',
'required' => false,
));
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\OrganisationUser',
));
}
}
注意:要使用
chrome.webRequest.onBeforeRequest.addListener(...);
API,您必须在manifest.json中拥有webRequest
权限。
答案 1 :(得分:0)
您可以使用browser
命名空间使用相同的请求格式。下面是相同的示例代码。这里的listener
是一个回调函数。
browser.webRequest.onBeforeRequest.addListener(
listener, // function
filter // object
)
browser.webRequest.onBeforeRequest.removeListener(listener)
browser.webRequest.onBeforeRequest.hasListener(listener)
您可以找到有关此API here的更多详细信息。
答案 2 :(得分:-1)
我们可以向您显示的任何内容都将在未知时间被禁用,并且由于Kev Needham's plan for the future of Firefox extensions而无法用于webextensions,所以您可以做的就是等到Firefox最终支持webextensions。