This question comes up frequently and generally the asker really means, “How can I prevent people from stealing the [content | script] from my Web site?”  And there are a few things you can do to make it more difficult.  You can add onContextMenu handlers (to prevent the default context menu from displaying).  You can obfuscate your script and have your html reference the script from a file (to make the script harder to read/understand).  You can cancel onDragStart (to prevent drag-and-drop of images to the desktop).  You can instruct the browser not to cache the data using http-equiv (to prevent clever people from simply copying the file from the cache directory). 

There are probably a few more things along these lines, but they are all in the same catagory.  None of these will ultimately prevent someone from using source or content from your site.  The reason for this is all of the above things require the client to behave correctly.  You cannot control the client.  For example, Internet Explorer always has the View Source option on the menu.  There are other products which provide tools to visually inspect the DOM. 

A site's intellectual property is protected (in the US) by US Copyright Law.  However, there seem to be a large number of people who want their site to be viewable for free by the masses and at the same time they want to be 100 per cent sure people save or copy the data on their pages.  This is unrealistic.  If the data is coming down the wire to a computer, the user of said computer will always be able to find a way to get the data.  An analogy would be FM radio.  You can broadcast all you want, but you cannot prevent someone from recording the broadcast.  You can raise the bar with your Web site by obfuscating, disabling, not caching, etc.  You can make it more difficult; you cannot make it impossible.  The correct way to protect your data is to require authentication with the server and then encrypt the subsequent communication.