Windows phone 7 是否可以检测WP7 WebBrowser控件中的DOM元素?

Windows phone 7 是否可以检测WP7 WebBrowser控件中的DOM元素?,windows-phone-7,webbrowser-control,Windows Phone 7,Webbrowser Control,是否可以使用WP7 WebBrowser控件在用户点击的站点下检测DOM元素?我想让用户识别呈现页面的某些部分。我猜您必须从中构建一些内容 此时,您将像往常一样注册一个JavaScript事件处理程序,但该事件处理程序将依次调用window.external.notify(“someMessageToHandle”)。然后,您必须适当地路由呼叫 如果您不能直接在页面上添加JavaScript事件处理程序,可以使用添加它们。是。这段代码对我来说非常有效: private void butt

是否可以使用WP7 WebBrowser控件在用户点击的站点下检测DOM元素?我想让用户识别呈现页面的某些部分。

我猜您必须从中构建一些内容

此时,您将像往常一样注册一个JavaScript事件处理程序,但该事件处理程序将依次调用
window.external.notify(“someMessageToHandle”)。然后,您必须适当地路由呼叫


如果您不能直接在页面上添加JavaScript事件处理程序,可以使用添加它们。

是。这段代码对我来说非常有效:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        // first define a new function which serves as click handler
        webBrowser1.InvokeScript("eval", "this.newfunc_eventHandler = function(e) { window.external.notify(e.srcElement.tagName); }");
        // attach function to body
        webBrowser1.InvokeScript("eval", "document.body.addEventListener('click', newfunc_eventHandler, false);");
    }

    private void webBrowser1_ScriptNotify(object sender, NotifyEventArgs e)
    {
        // this should be called every time you tap an element; the value should be its tag name
        Debug.WriteLine(e.Value);
    }
这与贾斯汀的答案一致(他在编码时打败了我)。它首先定义一个点击处理程序,然后将其附加到页面的主体(全部通过)。每次点击一个元素时,应在
WebBrowser
上调用该元素,报告点击元素的标记名

确保已将浏览器控件的
IsScriptEnabled
设置为true