Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Disable view source

Posted on 2001-06-27
11
207 Views
Last Modified: 2010-08-05
Hi

Using Delphi 5.0 Pro. Is it possible to disable the 'View source' option on the pop-up menu that appears when you right click on the TWebBrowser component. Disabling the the pop-up menu completely is acceptable. I have tried adding my own pop-up menu and setting the popupmenu property of the web browser component to use this pop up menu, but it did not work, the default menu still appeared.

Thanks

John
0
Comment
Question by:nhoj
  • 5
  • 2
  • 2
  • +2
11 Comments
 
LVL 13

Expert Comment

by:Epsylon
ID: 6230969
You can protect your own pages in IE with:

<body oncontextmenu="return false" ...>
...
</body>
0
 

Expert Comment

by:jlislo
ID: 6231539
Add the following to you HTML

<script language="JavaScript">
<!--  
if (navigator.appName.indexOf("Internet Explorer") != -1)  
document.onmousedown = noSourceExplorer;  
function noSourceExplorer(){if (event.button == 2 | event.button == 3)  
{  
alert("your message here!");}
}  
//-->    
</script>

JL
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6231568
jlislo, what if it should disable the menu for all pages on the internet?
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 1

Author Comment

by:nhoj
ID: 6231605
Epsylon's answer works just fine, and since this is a custom app using the Delphi web browser component I will accept this as an answer if Epsylon would like to post it as such.

Regards John
0
 

Expert Comment

by:jlislo
ID: 6231614
Epsylon,

Try add the javascript code to the document in run time. This is just a thought I don't have D5 at work, I have to try it at home tonight.
0
 
LVL 17

Expert Comment

by:inthe
ID: 6231818
if you wish to disable the popup menu or use your own you can do it this:

procedure MessageLoop(var Msg:TMsg;var Handled:Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.MessageLoop(var Msg: TMsg; var Handled: Boolean);
var
 mouse:Tpoint;
begin
if msg.hwnd = webbrowser1.Handle then
  begin
   if (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)
   then begin
    handled:=True;
     getcursorpos(Mouse); //popup your own menu
    popupmenu1.popup(Mouse.x,Mouse.y);
   end
  else Handled := False; //not rbutton
 end
else
Handled := false; //not webbrowser msg
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := MessageLoop;
end;
0
 
LVL 2

Expert Comment

by:SChertkov
ID: 6237655
It's not right.
You disable all popup menu from brower control
not only 'view source' option.
Right way is to implement IDocHostUIHandler,
and in IDocHostUIHandler:: ShowContextMenu
popup own menu.
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6242133
nhoj, if you want to accept my answer you must reject jlislo's first...
0
 
LVL 1

Author Comment

by:nhoj
ID: 6243913
Epsylon's comment woorks fine and is simple to implement, the fact that the pop-up menu does not appear at all does not matter since there are other functions on this menu that W also wanted to disable e.g. "Print" as I have my own print function which will print over the page properly.

Thanks

Regards John
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6243959
Thank you, John.
0
 
LVL 13

Accepted Solution

by:
Epsylon earned 100 total points
ID: 6243961
:o)
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question