2013-05-03 3 views
1

Я знаю, что есть уже связанная с этим тема, но мне нужна дополнительная информация. На данный момент, у меня есть этот код, который я получил сформировать другую нить,Как добавить контекстное меню в веб-браузере?

public void AttachContextMenu() 
    { 
     try 
     { 
      if (webTab1.IsScriptEnabled) 
      { 
       webTab1.InvokeScript("execScript", "function FindParentLink(item) \r\n{\r\n\tif (!item.parentNode)\r\n\t\treturn null;\r\n\tif (item.tagName.toLowerCase() == 'a') \r\n\t{\r\n\t\treturn item;\r\n\t} \r\n\telse \r\n\t{\r\n\t\treturn FindParentLink(item.parentNode);\r\n\t}\r\n}\r\n\r\nfunction FindParentImage(item) \r\n{\r\n\tif (!item.parentNode)\r\n\t\treturn null;\r\n\tif (item.tagName.toLowerCase() == 'img') \r\n\t{\r\n\t\treturn item;\r\n\t} \r\n\telse \r\n\t{\r\n\t\treturn FindParentImage(item.parentNode);\r\n\t}\r\n}\r\n\r\nfunction HandleContextMenu() \r\n{\r\n\tvar linkItem = FindParentLink(event.srcElement);\r\n var imageItem = FindParentImage(event.srcElement);\r\n var notifyOutput = '';\r\n if (linkItem != null) if (linkItem.href != null) notifyOutput += linkItem.href;\r\n if (imageItem != null) if (imageItem.src != null) notifyOutput += imageItem.src;\r\n if (notifyOutput != '')\r\n  window.external.notify(notifyOutput);\r\n else\r\n\t\twindow.external.notify('NOTLINKIMG');\r\n}"); 
       webTab1.InvokeScript("execScript", "document.oncontextmenu = HandleContextMenu;"); 
      } 
     } 
     catch 
     { 
     } 
    } 

нить сказал, что, когда браузер закончил загрузку вы просто вызываете этот метод, хотя оно не похоже на работу.

Любые идеи о том, как я могу заставить его работать?

ответ

0

Это работает только на Windows Phone 7.X. не 8.

AddHandler wb.Loaded, Sub(sendr As Object, ev As EventArgs) 
    wb.IsScriptEnabled = True 
    AttachContextMenu() 
End Sub 
AddHandler wb.ScriptNotify, Sub(sender As Object, e As Microsoft.Phone.Controls.NotifyEventArgs) 
    Diagnostics.Debug.WriteLine(e.Value.ToString) 
End Sub 

Если вы знаете, как открыть контекстное меню управления WebBrowser WP8, пожалуйста, сообщите нам всем знать. В WP8 я сделал это, используя событие onmousedown, таймер и событие onmouseout в сочетании с функцией findparentlink из WP7.

Смежные вопросы