我正在开发Chrome 4(目前为4.0.249.0)的扩展程序,该扩展程序将在状态栏中显示用户的StackOverflow/SuperUser/ServerFault信誉.我设计了一个选项页面来获取用户的个人资料ID,然后将它们保存到localStorage并在扩展中很好地阅读它们.这一切都很棒.
问题是我找不到一种(程序化的)方法来在保存选项时刷新扩展名.我试图location.reload();在右键单击时从扩展页面调用- 无济于事.我进一步追求它并尝试查看Chrome chrome://extensions/页面重新加载扩展程序的功能,并找到了以下代码:
/**
* Handles a 'reload' button getting clicked.
*/
function handleReloadExtension(node) {
// Tell the C++ ExtensionDOMHandler to reload the extension.
chrome.send('reload', [node.extensionId]);
}
Run Code Online (Sandbox Code Playgroud)
将此代码复制到我的事件处理程序没有帮助(是的,我尝试用[node.extensionId]实际代码替换).有人可以帮助我以正确的方式做这件事,或者指点我正确执行此操作的扩展代码吗?完成后,我会将扩展及其来源放在我的博客上.
我有一些待售的物品有2级和3级的定制.设置完成后,用户将它们添加到我的现场购物车中.问题是,如何在结账时将每件物品发送到贝宝?我发现动态按钮的唯一代码仅支持单个项目.
<form method="post" action="https://www.paypal.com/cgi-bin/webscr" target="paypal">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="add" value="1">
<input type="hidden" name="business" value="EMAIL">
<input type="hidden" name="item_name" value="Item #1">
<input type="hidden" name="item_number" value="123456">
<input type="hidden" name="amount" value="7.00">
<input type="hidden" name="shipping" value="0">
<input type="hidden" name="shipping2" value="0">
<input type="hidden" name="handling" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="return" value="http://www.yoursite.com/thankyou.htm">
<input type="hidden" name="undefined_quantity" value="1">
<input type="image" src="http://images.paypal.com/en_US/i/btn/x-click-but22.gif" border="0" name="submit" width="87" height="23" alt="Make payments with PayPal - it's fast, free and secure!">
</form>
Run Code Online (Sandbox Code Playgroud)
我尝试添加
<input type="hidden" name="item_name_2" value="Item #1">
<input type="hidden" …Run Code Online (Sandbox Code Playgroud) 我将维护已排序的值列表.我将在列表中插入任意值的项目.每次我插入一个值,我想确定它在列表中的顺序位置(是第1,第2,第1000).什么是最有效的数据结构和算法来实现这一目标?显然有很多算法可以让你这样做,但我没有看到任何方法可以使用简单的STL或QT模板功能轻松做到这一点.理想情况下,我想了解现有的开源C++库或可以执行此操作的示例代码.
我可以想象如何为此目的修改B树或类似的算法,但似乎应该有一个更简单的方法.
EDIT3:
Mike Seymour很好地证实,正如我在原帖中写的那样,使用简单的STL确实无法完成这项任务.所以我正在寻找一个好的btree,平衡树或类似的开源c ++模板,它可以在没有修改或尽可能少修改的情况下完成--Pavel Shved表明这是可能的,但我不想深入实现平衡树我.
(历史应该显示我使用make_heap将Mathieu的代码修改为O(log N)的不成功的努力)
编辑4:
我仍然给信贷帕维尔用于指出B树能够给一个解决方案,这一点,我不得不提,实现这种功能,但并不实现是最简单的方法定制 B-树的C++自己的模板是使用内存数据库.这将为您提供log n并且相当容易实现.
如何在C中初始化此嵌套结构?
typedef struct _s0 {
int size;
double * elems;
}StructInner ;
typedef struct _s1 {
StructInner a, b, c, d, e;
long f;
char[16] s;
}StructOuter; StructOuter myvar = {/* what ? */ };
Run Code Online (Sandbox Code Playgroud) 如果你想移动HEAD到当前的父节点HEAD,这很容易:
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
但有没有简单的方法来完成与此操作完全相反的操作,即将头设置为当前头的第一个子提交?
现在,我使用gitk作为解决方法(alt-tab,向上箭头,alt-tab,中键单击),但我想要一个更优雅的解决方案,也可以在gitk不可用时使用.
我设计了一个窗口样式=无的WPF表单.所以我看不到表单中的拖动条.如何使用WindowStyle = None属性移动表单?
我不明白为什么var m不会返回Match.我没有检查,但它似乎返回一个对象.
foreach (var m in Regex.Matches("dummy text", "(mm)"))
var sz = m.Groups[1]; // error CS1061: 'object' does not contain a definition for 'Groups' and no extension method 'Groups' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
foreach (Match m in Regex.Matches("dummy text", "(mm)"))
var sz = m.Groups[1]; //ok
Run Code Online (Sandbox Code Playgroud) 我正在尝试更新Google网站中的内容,并在异常VersionConflictException中读取流.
当我检查流时它很好并且在POST请求中完全加载但是后来我得到了跟随错误.
org.apache.commons.fileupload.FileItemStream$ItemSkippedException
at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:880)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at com.google.gdata.data.media.MediaSource$Output.writeTo(MediaSource.java:87)
at com.google.gdata.data.media.MediaBodyPart$MediaSourceDataHandler.writeTo(MediaBodyPart.java:74)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
at com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
at com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
at com.google.gdata.client.Service.writeRequestData(Service.java:1831)
at com.google.gdata.client.media.MediaService.updateMedia(MediaService.java:497)
at com.google.gdata.data.media.MediaEntry.updateMedia(MediaEntry.java:159)
at morefile.UploadApp.updateAttachment(UploadApp.java:136)
Run Code Online (Sandbox Code Playgroud) 我在我的C#程序中这样做:
File.copy(Application.StartupPath + "\Test.txt",@"c:\Test.txt");
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
Access to the path 'c\Test.txt' is denied
Run Code Online (Sandbox Code Playgroud)
它只发生在Windows 7中,在Windows XP中它运行良好.
当使用例如"less -iS + F service.log"观看日益增长的日志文件时,我想将显示限制为与特定模式匹配的行.
我试过类似的东西
less +F service.log | grep <pattern> | less +F
Run Code Online (Sandbox Code Playgroud)
这不起作用.也
cat < service.log | grep <pattern> | less +F
Run Code Online (Sandbox Code Playgroud)
不做我想做的事.看起来输入已经关闭,少则不显示更改.
如何将显示限制为与特定图案匹配的线条?