问题列表 - 第38665页

是否可以确定WebBrowser是否正在导航?

我正试图找到一种方法让我的程序知道WebBrowser何时导航以及何时不导航.这是因为程序将通过将在文档中注入的JavaScript与加载的文档进行交互.我没有任何其他方式知道它何时开始导航而不是处理导航事件,因为不是我的程序,而是将通过与文档交互进行导航的用户.但是,当DocumentCompleted发生时并不一定意味着它已完成导航.我一直在谷歌搜索,发现两个伪解决方案:

  1. 在事件中检查WebBrowser的ReadyState属性DocumentCompleted.这里的问题是,如果没有这个文件,但该文件加载的框架中,ReadyStateCompleted即使没有完成主文档.

  2. 为了防止这种情况,他们建议,看是否网址参数传递到DocumentCompleted比赛地址WebBrowser.这样我就会知道DocumentCompleted文档中的某些其他框架没有调用它.

2的问题在于,正如我所说,我必须知道页面导航的唯一方法是处理Navigating(或Navigated)事件.因此,例如,如果我在Google地图中并点击搜索,Navigating则会调用,但只是一个框架正在导航; 不是整个页面(在特定的Google案例中,我可以使用TargetFrameName属性WebBrowserNavigatingEventArgs来检查它是否是正在导航的帧,但帧并不总是有名称).所以在那之后,DocumentCompleted将被调用,但不会与UrlWebBrowserUrl属性相同,因为它只是一个导航的框架,所以我的程序将会永远导航它.

添加调用Navigating和减去调用也DocumentCompleted不会工作.它们并不总是一样的.我已经好几个月没有找到这个问题的解决方案; 我一直在使用解决方案1和2,并希望它们适用于大多数情况.我的计划是使用计时器,以防某些网页出现错误或其他问题,但我认为Google地图没有任何错误.我仍然可以使用它,但唯一更丑陋的解决方案是烧毁我的电脑.

编辑:到目前为止,这是我最接近解决方案的:

partial class SafeWebBrowser
{
    private class SafeNavigationManager : INotifyPropertyChanged
    {
        private SafeWebBrowser Parent;
        private bool _IsSafeNavigating = false;
        private int AccumulatedNavigations = 0;
        private bool NavigatingCalled = …
Run Code Online (Sandbox Code Playgroud)

.net c# browser webbrowser-control

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

MongoDB数据库中的数据如何存储在磁盘上?

我知道MongoDB接受和检索记录JSON/BSON objects,但它如何实际将这些文件存储在磁盘上?它们是作为单个*.json文件的集合存储还是作为一个大文件存储?我对后者有一种预感,因为MongoDB文档声明它最适用于ext4/xfs处理大文件的系统.谁能确认一下?

database mongodb

61
推荐指数
2
解决办法
7万
查看次数

JavaScript 字符串中转义的 html 中未终止的字符串文字

在编码该值时,我发现一些 javascript 字符串文字存在问题:

未编码

<!-- Start ValueClick Media 300x250 Code for Test Tag -->
<script language="javascript" src="http://media.fastclick.net/w/get.media?sid=38901&m=6&tp=8&d=j&t=n"></script>
<noscript><a href="http://media.fastclick.net/w/click.here?sid=38901&m=6&c=1" target="_blank">
<img src="http://media.fastclick.net/w/get.media?sid=38901&m=6&tp=8&d=s&c=1"width=300 height=250 border=1></a></noscript>
<!-- End ValueClick Media 300x250 Code for Test Tag -->
Run Code Online (Sandbox Code Playgroud)

我最终得到这个值:

已解码

"<!-- Start ValueClick Media 300x250 Code for Test Tag -->\r\n<script language=\"javascript\" src=\"http://media.fastclick.net/w/get.media?sid=38901&m=6&tp=8&d=j&t=n\"></script>\r\n<noscript><a href=\"http://media.fastclick.net/w/click.here?sid=38901&m=6&c=1\" target=\"_blank\">\r\n<img src=\"http://media.fastclick.net/w/get.media?sid=38901&m=6&tp=8&d=s&c=1\"width=300 height=250 border=1></a></noscript>\r\n<!-- End ValueClick Media 300x250 Code for Test Tag -->"
Run Code Online (Sandbox Code Playgroud)

当在某些 javascript 代码中用作 javascript 文字时,Firefox 会抱怨它未终止 - 但我自己也不明白为什么。

奇怪的是,如果我</script>从上面的 html 中删除“”结束标记,则编码版本可以正常工作,如下所示:

未编码

<!-- Start ValueClick Media …
Run Code Online (Sandbox Code Playgroud)

javascript string escaping string-literals double-quotes

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

.NET Treeview不会在空控件上发送click事件

我正在使用.NET Treeview控件(不是WPF,但是常规winforms),并且当控件内部没有节点时,右键单击事件(或任何单击事件)无法触发.根据对Stackoverflow 上另一个线程的响应,我的事件处理程序代码如下:

    private void tvTest_MouseClick(object sender, MouseEventArgs e)
    {
        // Note: this block below is needed so that the menu appears on
        // the correct node when right-clicking.
        if (e.Button == MouseButtons.Right)
        {
            tvTest.SelectedNode = tvTest.GetNodeAt(e.X, e.Y);
            if (tvTest.SelectedNode != null)
            {
                tvTestContextMenuStrip.Show(tvTest, e.Location);
            }
            else
            {
                tvTestContextMenuStrip.Show(tvTest, tvTest.Location);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题在于,当节点存在时这种方法很好,如果控件为空,我无法右键单击该控件并选择"添加节点"以添加到根节点.处理程序未输入AT ALL,因为我在开头设置了一个断点,并且似乎从未输入该方法.

当Treeview为空时,有谁知道如何让"某事"发生?

.net c# treeview events user-interface

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

如何让fprintf为空数值保留空间?

在MATLAB中,我fprintf用来打印列标题下的数值列表,如下所示:

fprintf('%s %s %s %s\n', 'col1', 'col2', 'col3', 'col4')
for i = 1:length(myVar)
    fprintf('%8.4g %8.4g %8.4g %8.4g\n', myVar{i,1}, myVar{i,2}, myVar{i,3}, myVar{i,4})
end
Run Code Online (Sandbox Code Playgroud)

这导致如下所示:

    col1     col2     col3     col4
   123.5    234.6    345.7    456.8
Run Code Online (Sandbox Code Playgroud)

但是,当其中一个单元格为空(例如myVar{i,3} == [])时,不保留空间:

    col1     col2     col3     col4
   123.5    234.6     456.8
Run Code Online (Sandbox Code Playgroud)

如何以我的格式保留可能为空的数值的空间?

matlab

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

VCS和SCM有什么区别?

我正在对实践中的修订控制进行一些研究,在书籍和论文中似乎有两个相同的名称:软件配置管理(SCM)和版本控制系统(VCS).前者似乎很受软件工程师/ Java程序员的欢迎,而后者似乎来自系统管理员,但在外行人的眼神中,两者都出现了同样的意思.

另一方面,在过去,我将SCM解释为傀儡或cfengine.任何人都可以在实践中直接指导我这两个术语吗?优选具体实例.

version-control terminology

46
推荐指数
2
解决办法
3万
查看次数

Web应用程序中的计划任务?

我正在为在线游戏构建统计应用程序,使用Java中的servlet API构建(将部署在Tomcat上).每次用户登录时,让游戏向stats服务器发送消息都很容易,因为处理请求是Servlets/Tomcat的用途.

我还需要定期在统计服务器上发起请求,例如从游戏服务器检索在线用户的数量或从我们的Facebook页面检索粉丝数量.

在应用程序的主servlet中启动一个线程并让它偶尔进行数据检索会很容易,但是感觉有点奇怪,因为所有其他线程都是由Tomcat创建的.

  1. 这样做好吗?
  2. 如果没有,推荐的方法是什么?
  3. 在这样的事情上使用servlet是否正确?有什么选择?

请注意第一个答案:我不是在寻找解决时序或并发问题的方法,因为我可以轻松处理这两个问题.我只需要知道如何在servlet容器中正确启动主动进程.

java tomcat servlets scheduled-tasks tomcat6

14
推荐指数
2
解决办法
3万
查看次数

如何知道GWT和IE8中的RPC对象是否"太大"?

我有一个在Firefox中运行良好的应用程序但是当我在IE8中测试时,我遇到了一个奇怪的错误: 'Stack overflow at line: 0'

在GWT讨论组建议它可能与从RPC调用返回的大型/复杂对象有关之后,我能够将问题缩小到我的一个RPC服务器调用,这些调用确实返回一个大而复杂的对象.

如果错误是由于大对象太大或太复杂,我怎么知道这个?"太大"的门槛在哪里?

GWT讨论的进一步评论表明Collections对象可能是问题所在,但这是来自GWT开发人员的另一个经验.这是由GWT文档或团队在任何地方记录的吗?

但即便如此,问题仍然存在 - 我怎么知道什么时候'足够小'?

gwt gwt-rpc internet-explorer-8

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

Android的TabWidget自定义样式

我在我的Android应用程序中使用选项卡,在HTC Sense手机上运行应用程序时遇到了这个问题:

Android:TabWidget的突出显示选项卡在HTC Sense上无法读取

建议那里的解决方案(将android:targetSdkVersion设置为4)不能解决我的问题,也不想将目标sdk设置为4.

我已经尝试解决这个问题,我创建了自己的标签小部件样式,并修改了文本颜色.问题是当我使用自己的风格时没有明显的区别; 即样式似乎没有应用于选项卡.

这是主要活动的代码,包含选项卡:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab);

    tabHost = getTabHost();
    tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Tab 1").setContent(new Intent(this, Tab1.class)));
    tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Tab 2").setContent(new Intent(this, Tab2.class)));

    tabHost.setCurrentTab(0);
}
Run Code Online (Sandbox Code Playgroud)

这是我的tab.xml.请注意,我已将MyTabStyle指定为TabWidget的样式:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp">
        <TabWidget
            style="@style/MyTabStyle"
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" />
    </LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)

这是我对MyTabStyle的定义,我在res/values/styles.xml中定义了它:

<style name="MyTabStyle" parent="@android:style/TextAppearance.Widget.TabWidget">
    <item name="android:textColor">#5DFC0A</item>
</style>
Run Code Online (Sandbox Code Playgroud)

为什么我的应用程序中没有MyTabStyle中的任何更改?解决HTC Sense中选定选项卡上不可见文本的任何其他解决方案?

更新2011-06-02

通过使用选项卡上的文本实际上是TextViews的知识,我设法以一种hacky方式解决了这个问题.将以下方法添加到您的活动中:

private void setTabColor(TabHost tabHost) {
    try {
        for (int i=0; i < tabHost.getTabWidget().getChildCount();i++) …
Run Code Online (Sandbox Code Playgroud)

android android-widget

14
推荐指数
2
解决办法
5万
查看次数

如何用时间戳查询?

我有这张桌子:

id (int)
name (varchar)
insert (timestamp)
Run Code Online (Sandbox Code Playgroud)

一个示例行是这样的:

14, John, 2010-02-25 01:48:36
Run Code Online (Sandbox Code Playgroud)

在这个表中,我有100万行,我想知道每天插入了多少行.所以我想要这样的东西:

2010-02-25 153
2010-02-24 98
2010-02-23 219
2010-02-22 127
...
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

mysql sql

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