2013-12-02 3 views
0

Я выполнил инструкции из этого источника: http://www.codeguru.com/cpp/com-tech/atl/atl/article.php/c11007/Customize-an-IE-Context-Menu-to-Add-CodeGuru-Favorites.htm , чтобы добавить запись контекстного меню и вызвать метод элемента управления ActiveX через Javascript. Это важная часть:Я хочу знать URL-адрес изображения Я вызвал контекстное меню в (Internet Explorer)

<SCRIPT LANGUAGE="JavaScript"> 
var parentwin = external.menuArguments; 
var doc = parentwin.document; 
var str = new String(parentwin.event.srcElement.name); 
var oFav = new ActiveXObject("CodeguruFavorites.CGFavorites"); 
oFav.ShowDefaultContextMenu(parentwin,doc.title, doc.location); 
</SCRIPT> 

В этом примере автор посылает метод ActiveX название веб-страницы и URL веб-страницы, я вызвал на контекстное меню.

Я хочу знать, как получить URL-адрес изображения, на котором я запускал контекстное меню.

+0

я нашел ответ на этот пост http://stackoverflow.com/questions/7237870/how-can-one-identify-the-currently-clicked-link-with-javascript – evilwhaleboy

ответ

0

Я нашел ответ в этой должности: How can one identify the currently clicked link with Javascript?.

Объект, по которому запускается контекстное меню, - menuArguments.event.srcElement. Он передается методу элемента ActiveX в качестве указателя интерфейса IDispatch. На этом указателе вы можете вызвать QueryInterface, чтобы получить указатель на элемент IHTMLImgElement.

pDispatch->QueryInterface(IID_IHTMLElement,(void**)&lpElement); 
if (lpElement) 
{ 
    CComBSTR tagName; 

    lpElement->get_tagName(&tagName); 

    if(0 == wcsicmp(tagName.m_str, L"img")) 
    { 
     CComPtr<IHTMLImgElement> spImg; 

     lpElement->QueryInterface(IID_IHTMLImgElement, (void**)(&spImg)); 

     if(spImg) 
     { 
      CComBSTR src; 

      HRESULT hr = spImg->get_src(&src); 
      if(FAILED(hr)) 
       return hr; 
     } 
    } 
} 

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

  • Нет связанных вопросов^_^