我有一个网页,其中有一个广播组作为您要保存的文件格式的选项.选项包括:
所有工作,但.csv,因为它也将页面HTML添加到文件的底部.
这是我正在尝试的(代码片段显示功能):
// Creating the format
$data = $this->getQueryResults();
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle("Report");
$objPHPExcel->getProperties()->setCreator("me");
$objPHPExcel->getProperties()->setLastModifiedBy("me");
$objPHPExcel->getProperties()->setSubject("Report Stuff");
$objPHPExcel->getProperties()->setDescription("Report Stuff");
// Next I iterate through the data array
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$objPHPExcel->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
// check the radio option selected for the file format
if($this->radioXLS->Checked) {
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$excel_name.'.xls"');
header('Cache-Control: max-age=0');
}
if($this->radioXLSX->Checked) {
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$excel_name.'.xlsx"');
header('Cache-Control: max-age=0');
}
if($this->radioCSV->Checked) {
ob_end_clean(); // add/removing this does nothing
$objWriter = …Run Code Online (Sandbox Code Playgroud) 我有一个正则表达式如下:
var str="checkedchec ";
var patt=/.*(?:\w+|\S)*\s+(or|and|not|xnot|near|near\d+|onear|onear\d+|title\:|ingress\:|\?|\*|\^|sourceid\:|author\\:|url\:|country\:)\s+.*/i;
var newStr = str.split(patt);
var result=patt.test(str);
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式工作得很好,但是当我有一个长度超过11个字符的字符时,除了Mozilla firefox之外,它给出了"表达式太复杂".它适用于IE和Chrome.
我正在开发一个firefox扩展,我希望能够关闭一个特定的选项卡.例如,如果浏览器中有许多打开的选项卡,则只想关闭具有特定URL的选项卡.
我知道我可以使用gBrowser.removeTab(tab),但我不知道如何获取tab对象.另一方面,我可以获得与url对应的浏览器,但removeTab()函数的param必须是"tab对象".我如何得到标签对象.
有任何想法吗?
有没有办法轻松使用远程javascript文件作为内容脚本与page-mod API?
我正在尝试构建一些简单的插件供我自己使用,以自动化一些重复的东西.因为我将要修改的页面会不时更改,我将需要相应地更新"内容脚本"javascript,如果我只需要在我的服务器上编辑它并且插件/扩展将再次工作,那将是很好的无需编辑和重新打包xpi.我很确定我能够一起破解可以实现这一目标的东西,但是如果有任何简单的方法可以做到这一点我都是耳朵:)
我正在尝试使用在线Add-On SDK创建一个Firefox附加组件.
我从一些简单的东西开始 - 我想添加一个工具栏按钮来读取当前选定的文本.
var selection = require("selection");
if (selection.text)
console.log(selection.text);
Run Code Online (Sandbox Code Playgroud)
这似乎对我不起作用,我得到了null.
这是我的完整代码:
var selection = require("selection");
require("widget").Widget({
id: "widgetID1",
label: "Test Mozilla Widget",
contentURL: "http://www.mozilla.org/favicon.ico",
onClick: function(event) {
console.log('selection.text = ' + selection.text);
}
});
Run Code Online (Sandbox Code Playgroud)
我也尝试selection在onClickeven中创建对象,效果相同.
我能够使用该select事件获得有关新选择的通知,所以我想我可以使用它而不是(并保留值),但我想知道为什么上面的代码不起作用...我做错了什么?
当我使用Add-on SDK编写Firefox附加组件时,我注意到附加代码和内容脚本代码阻止了彼此的执行.此外,附加代码似乎甚至阻止了与其他Firefox窗口(不仅仅是标签)的交互.
Firefox附加组件的并发/进程模型是什么?
是否可以在没有合作多线程(la定时器)的情况下同时运行附加代码和内容脚本代码?
加载了多少次加载代码?每个窗口一次?每个标签一次?一旦?
该文件规定:
Mozilla平台正朝着一个模型发展,在该模型中,它使用单独的流程来显示UI,处理Web内容和执行附加组件.主要附加代码将在附加组件进程中运行,并且不能直接访问任何Web内容.
所以我希望将来它们确实是不会相互干扰的独立过程,但现在似乎并非如此.
更新:
我已尝试使用附加代码中的页面工作程序,但不幸的是,它仍会阻止内容脚本(以及所有其他javascript).我也尝试在页面工作者中使用Web worker,但是在调用web worker的postMessage函数时出现以下错误.
TypeError:worker.postMessage不是函数
我还尝试在page-worker中创建iframe,然后在iframe中创建一个web worker,但遗憾的是我不能使用page-worker中的window.addEventListener.我收到以下错误:
TypeError:window.addEventMessage不是函数
最后,我尝试将脚本(通过脚本元素)注入页面工作者页面,以创建一个似乎有用的Web工作者.不幸的是,我无法与此Web工作者通信,因为我只能通过document.defaultView.postMessage向其发送消息.
哦,我编织的缠结的网...
content-script - > add-on - > page-worker - > iframe - > web worker - >我的代码
我举了一个简单的例子:
的package.json
{
"name": "test",
"author": "me",
"version": "0.1",
"fullName": "My Test Extension",
"homepage": "http://example.com",
"id": "jid1-FmgBxScAABzB2g",
"description": "My test extension"
}
Run Code Online (Sandbox Code Playgroud)
LIB/main.js
var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
include: ["http://*", "https://*"],
contentScriptWhen: "start",
contentScriptFile: [data.url("content.js")],
onAttach: function (worker) …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚如何在Firefox插件中使用正则表达式匹配模式(使用附加组件生成器).我试过用match-pattern包.
我main.js看起来像这样:
var { MatchPattern } = require("match-pattern");
//Matching all urls containing moz and chrome
var pattern = new MatchPattern(/.*moz.*/);
var pattern2 = new MatchPattern(/.*chrome.*/);
var pageMod = require("page-mod");
var data = require("self").data;
pageMod.PageMod({
include: [pattern, pattern2],
contentScriptWhen: 'ready',
contentScriptFile: [data.url('jquery-1.7.1.min.js'),data.url('jquery-ui.js')]
});
Run Code Online (Sandbox Code Playgroud)
但错误控制台显示此错误:
时间戳:3/19/2012 9:03:34 PM错误:发生异常.回溯(最近一次调用最后一次):文件"资源://jid0-m6oqvn6bm6wcoo89bddsxwddkou-at-jetpack/api-utils/lib/match-pattern.js",第87行,在MatchPattern_test中.thegexp.exec(urlStr)[0 ] == urlStr)TypeError:this.regexp.exec不是函数
我在这做错了什么?我可以在include数组中传递正则表达式匹配模式pageMod吗?任何帮助,将不胜感激.
我只是为我的网站添加一个帐户标题,只显示玩家用户名.
我使用自定义字体,它在chrome和IE上工作正常,但对于Firefox,它不显示自定义字体,只显示下一个可用字体Verdana.我不介意,但我的问题是字体Verdana的大小比我的自定义字体小,所以如果我将其设置为7.5pt作为字体大小,自定义字体显示两倍的大小.无论如何我可以为Firefox设置更高的字体大小?
以下是用户名所在的div的css:
font-size: 7.5pt;
color: #9f1717;
text-align: center;
font-family: xirod, xirodeot, Verdana, Geneva, sans-serif;
Run Code Online (Sandbox Code Playgroud) 我正在构建一个Chrome扩展程序,它使用多个API.目前我已将其设置为可以使用其中一个API,但尝试向清单添加第二个将无效.我尝试了一些导致扩展无法工作或清单文件无效的事情.
"content_security_policy": "script-src 'self' https://domain-1.com; object-src 'self'",
"content_security_policy": "script-src 'self' https://domain-2.com; object-src 'self'"
Run Code Online (Sandbox Code Playgroud)
提供无效的清单错误
"content_security_policy": "script-src 'self' https://domain-1.com; https://domain-2.com; object-src 'self'",
Run Code Online (Sandbox Code Playgroud)
仅适用于第一个域
"content_security_policy": "script-src 'self' https://domain-1.com, https://domain-2.com; object-src 'self'",
Run Code Online (Sandbox Code Playgroud)
提供无效的清单错误
我正在写一些代码,并希望在两个输入之间有一些空间,并且<br />在Firefox中不起作用:
<input type="text" id="X_Axis" /><br />
<input type="text" id="Y_Axis" />
Run Code Online (Sandbox Code Playgroud)
无的<br />,<br/>,</br>工作.
PS我没有在任何其他浏览器中尝试过,所以它可能不是Firefox,正如我想的那样.