Posted by: dotnetninja | January 12, 2009

How to open SharePoint documents in Edit mode with Internet Explorer 6 and Windows XP (without regfix)

This post was resting on my unfinished blog list for more than one month now and it is time to finish it. It is also my first SharePoint post (I think :) ).

If you ever tried to open SharePoint document from SharePoint document library and you have Microsoft XP and Office 2003 installed on your machine, you may have discovered that file in SharePoint which you click, to open is always open in “Read Only” mode (read only permission) and you cannot make changes to the document.

If you click on an Office document in SharePoint to open it – it loads it in the relevant application (if you have configured client to open it in the client application), but in Read-Only mode.

In my case I had list of files in Web Application which represented list of SharePoint documents that specific user had permission to Read and Edit. This list was retrieved using custom SharePoint web service which I will cover in my next SharePoint posts (creating custom SharePoint web service).

Because I have tested this Web application using my virtual machine (SharePoint, WSS 3.0) with my computer using Vista and Office 2007 I have received nice pop up message with choice to open file in Read Or Edit mode, like the image below.

SharePoint Document Open Choice

SharePoint Document Open Choice

But what I have learned is that ActiveX which Internet Explorer 6 is using on the machine where you have Office 2003 is not the same as on my Vista machine (with Office 2007 and IE7).

To save document user needed to know which document library filed belongs to and then manually navigate to it. That was not acceptable.

After searching the web I found workaround that should work http://support.microsoft.com/?kbid=870853. According this article:

  1. Quit all running Office 2003 programs.
  2. Open register (regedit.exe)
  3. Locate and then right-click the following registry subkey: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\Internet
  4. Point to New, and then click DWORD Value.
  5. Type OpenDocumentsReadWriteWhileBrowsing, and then press ENTER.
  6. Right-click OpenDocumentsReadWriteWhileBrowsing, and then click Modify.
  7. In the Value data box, type 1, and then click OK.
  8. On the File menu, click Exit to quit Registry Editor.

But, what if you are working in large corporation and you can not so easy push this registry change to all machines?

Or like in my case what if there are some other web based applications that do not permits opening documents in Edit Mode, but just Read Only mode?

And you can not make changes to this applications or even do not have access to those.
So it seems like a dead end, registry fix is needed to fix the problem but you are not allowed to make it or it mess up something else.

There is an workaround to open document from SharePoint in Edit mode.

If you “pull down” menu for the item in the SharePoint document library there is one menu item “Edit In Microsoft Word/Excel,…” like the image bellow.

Edit in Microsoft Word

Edit in Microsoft Word

After clicking on the item you are able to open file in Edit mode!, aha we are close.

There is also some javascript on work here behind the scenes that calls the right function to open the file.

My solution was to open SharePoint document library using Firefox and using the Firebug search for text (in this case) Edit in Microsoft Word.

The result of that search was call to function editDocumentWithProgID2 with correct in arguments for that file. See image bellow.

FireBug Edit in MS Word result

FireBug Edit in MS Word result

After further searching for this function in the SharePoint javascript files on the SharePoint server I found most of the needed functionality in Core.js.

I have extracted function needed to separated file and created simple web application with this reference to this script to test this functionality.
Here is the HTML of the page:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

 <title></title>

 <form id="form2" runat="server">
<div>
 <a href="http://demo-1/blankpage/Newdoclib/fold1/fold2/BLLayer.doc">link to file</a>
 <a href="" onclick="editDocumentWithProgID2('http://demo-1/blankpage/Newdoclib/fold1/fold2/BLLayer.doc', '', 'SharePoint.OpenDocuments', '0', 'http://demo-1/blankpage', '0')">Edit onclick</a></div>
</form>
 <script src="sp.js" type="text/javascript"></script>
 

After testing I was able to open file in the Edit mode without using registry fix.

Main web application was modified to use this script when user clicks on the SharePoint link and all worked like a charm.

Crunched Javascript file needed for this test can be found here.

About these ads

Responses

  1. […] Go to the author’s original blog: How to open SharePoint documents in Edit mode with Internet … […]

    • I have a similar problem, user could not edit MS Word document and reason was so Microsoft, browser on that machine was outdated. IE6 could not find Office 2007. After IE6 was updated to IE8 problem was solved. By the way nice pic. Dotnetnija should be Dotnetdervis :)

  2. I have also been having this problem for a while. I’m extremely glad you found that little bit of Javascript and decided to shared it!

    • I am glad that it helps someone :)

  3. Do you know of a solution that would allow the links to automatically open in Office instead of IE?

    ThankS!

  4. Where did you accomplish “Main web application was modified to use this script when user clicks on the SharePoint link and all worked like a charm.” Whate file was modified?

    • Hi

      I had an script on Web Page which listed links to the SharePoint documents. I have updated script on that page so when user clicks on the link to open document new javascript is used to call function which handles that correctly.
      If you are interested on functionality on that page I could provide code for it.

  5. I may be interested in that. But do you think there is a way to change the link for all document libraries, so if I click on the filename of a document in any shared document library and any view, it will run the edidocumentwithprogid script? That is what I’m most interested in doing.

    • Hi

      Yes that is exactly what I have done, observe that my links are in an separate ASP.NET application, so I have not changed script on the SharePoint nor I am opening files through SharePoint user Interface.
      In my case web page is loading all links(documents from different doc libraries) for specific user (each user has different rights) and rendered then on the web page(ASP.NET), and with click runing editdocu….
      Is that what you are trying to do or do you want to change script on the SharePoint (which is not recommended).

  6. I may not uderstand what “web page” is to you. I’m thinking of the page that is shown in the image with the atl text “editinmswordfirebug”. It seems you are saying you made a custom page that does this, which I assume is the 11 lines of code at the end of the blog that has a document hardcoded and not dynamic.
    My users will be in sharepoint, at a doc library, and will need to click once to edit the file in word without using the dropdown.
    I understand editing SharePoint may not be recommended, but I don’t see who else you can do it.

    • Hi
      Page on the blog entry is just simple example, this solution is applied on production web application where page with link is dynamical,…
      But in your case that will not do the trick, because users are interacting with SharePoint UI. In that case I do not see it like a big problem to use dropdown for each item in the library (SharePoint). Another way is to apply registry fix for each client machine.
      I assume that users are using office 2003, because in office 2007 users are prompted with choice how to open document.

      So I your case I would advise users to use dropdown if they want to edit document.

  7. Thank you, you have been very helpful. You are correct that it would be easier to use the drop down in my case, but what I am doing is attempting to override the menu so I can open a document through a citrix delivered app instead of edit in a local version of word. Using citrix wisp, there is a menu item to open the doc using the citrix delivered app. So I wanted to override the single click to do this instead of open on local copy of word. So instead of run the editinms.. onclick, i would run the onclick event to open the doc in citrix.
    To accomplish this, all I need is to find the location in sharepoint to change the click action.

    • Hi again

      If you change SharePoint script and you get update from Microsoft via Windows Update or something else which updates SharePoint functionality and maybe even scripts you will lose your change.
      In that case you will need to make the change again (if you are still in the same company). If you leave company without any documentation on that change users my find themselves with non working functionality.
      Still if you really need to change script main script is core.js located in C:\program files\common files\Microsoft shared\web server extensions\12\Template\layouts\1033. There is another javascript file needed to be changed but you will see if you follow functions.

      First copy core.js and rename copied file to mycore.js (or something else) and make changes to that file.
      Go to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL and open default.master and create custom master page with these lines

      Replace default.master with new master page.

      Doing this you are not modifying core.js.

      • Hey,

        We’re using Sharepoint 2003 and were looking to implement the change where clicking on a link will open the file with read/write permissions instead of having to “Edit in Microsoft Word…” but I’m unable to find core.js or default.master

        Any advice?

  8. Great article & I feel I’m close to achieving what I want, but…

    Being a relative newbie to this, could you tell me how I can use this js in my application?

    I have a SP list with hyperlinks to files held in SP doclibs. I want users to be able to click on these links and go straight to editing the docs. Is this possible (& if so, how) or have I misunderstood the functionality behind your script?

    I’m using office 2003.

    Thx

    • Hi
      You have not misunderstood, that is exactly this js is for.
      I will upload an simple page on the same catalog where sp.js resides which uses this script to open SharePoint docs. in edit mode.
      If you need something more, please feel free to contact me again.

  9. Hi, thanks for the quick response :o)
    I think I’ve identified my problem. I’m trying to put all this code in an Enhanced Rich Text field (where the link will reside) and each time I submit the form it strips all the javascript out – presumably to prevent anything malicious from going on.
    Do you know if there’s a way to stop SP stripping out the js? Or a workaround to open a document for editing from a link in a list?
    Thx again.

    • Hi
      If I understand correct you have links in Enh.Rich text filed inside SharePoint? I thought that you had some external web site accessing Shapoint documents.
      Do the users have access to SharePoint? or SharePoint document library?
      Why did you put links inside text field?

  10. Hi,
    That’s correct. It’s a long story but yes, the users have access to SP but they can be a bit hard of thinking. The idea is to get lots of information in the same list with a number of views to make the info easily navigable. Part of the information required is held in word/excel files and confusingly, there may be up to 8 links per record (but I want to keep groups of them together as they are the same document in different languages so I chose to keep them in 3 text fields (I know a hyperlink field seems to make more sense!)).
    The users are liable to get confused if they have to use 3 document libraries as well as the default list, so I was hoping to link straight to the relevant documents from my list. Am I just being daft or is there a way of doing this?!
    Thx
    CC

    • Hi

      In that case you do not have to use javascript (sp.js) because all necessary scripts are already loaded in SharePoint site. Did you tried just to write Edit onclick inside your text field?
      In your case I would do an custom web part with all necessary functionality, collection information from all document libraries you have and presenting in web part.

  11. Hi,

    thanks for the advice. I’ve been banging my head against a wall over this and can’t get the links to open right. I’ve tried Edit onclick too but that doesn’t work. I’ll try a new webpart but not sure how that will open non-read-only when I can’t do it from a list.
    Wish me luck…!

  12. Parabéns! Tks! Resolveu todos os meus problemas! Muito Obrigada! :) :)

  13. Hey…just wanted to say thanks for this. I’ve been working on a ASP.NET project to display the contents of a document library and provide similar functionality (check in/check out/delete).

    Your work has saved me tons of time.

    Thanks again.

    • :)))

  14. Your article is great! thanks for the information. I just came accros your blog, and my problem is that I am working on a new Sharepoint site ( Intranet for our comany) I had two accounts ( normal & Admin account) and have full control on both. Using my Admin account force me to open files in read-only mode even after I check them out, it says that the file is used by ( ..my account) and can’t save changes on same path. I’m in a big mess, I tried my normal account and I can check out/In and save files. other user with limited access is also able to do the same.
    Does this error have a relation to my -admin-user account or with js as you mentioned?
    plzzz help

    • Hi, i am glad that it helps you.

      I got this problem with combination of OS which was Windows XP, office 2003 and SharePoint (wss 3.0)
      Are you also using office 2003? So my error has nothing to do with admin part, check what is the difference between you account and admin account (security in sharepoint).
      Did you have created document library (your account) or admin?

  15. I am using Office 2007 and IE6 but seem to be having this same problem. I have a user who no matter what rights I give him to the SharePoint site cannot open any document in edit mode. It is possible that he has remnants of Office 2003 running in the background somehwere. He also does not have Active X installed. Not sure if that has anything to do with it. Any thoughts on this?

    • Hi KJ

      Please tray to repair MS Office 2007 and tray to edit.It will work 100%.
      Because i did the same thing, it is working for me.

  16. […] Opening the file a different way (Edit with…) […]

  17. Man, you’re magical, thanks a lot!!!

  18. Thanks for this article. It was very helpful. I’m wondering if I can somehow use this to create a link in an email created by a SP workflow. The link would allow my users to open the document from Outlook into Word in an edit mode.

    • I have the same question. Did you ever get a solution?

      • I have not tested this with outlook

  19. Your registry work around corrected my issue.

    Thanks

  20. Oh my god loved reading your blogpost. I submitted your feed to my google reader.

  21. […]  http://dotnetninja.wordpress.com/2009/01/12/how-to-open-sharepoint-documents-in-edit-mode-with-inter… Possibly related posts: (automatically generated)Read Only Linkage in Sharepoint.What is Google Docs and featuresTurning a Visualforce page into a Word Document […]

  22. Hi nice article.I have a question about MS share point,i could not open the word document in shared documents.I have vista and IE 8.I get the error message saying Internet Explorer is not working.Pl help

    • This maybe some error with IE check your privacy settings for IE.

    • Hi Srimathy

      Please enable share Point ADD ONs in IE 8.
      Then u can tray.

      IE —Tools—Internet Option–Programme –Add Ons

  23. This tip was very userful for me.. I was out of options trying to find a way of checking out the documents as it was just directly opening without giving me the option of edit and checkout.. You made my day :)

  24. Love this article! Save me a lot of time.
    I was wondering if it is possible to open doc in outlook in Edit Mode using this workaround.
    Any suggestion?

    • Sorry but I have not looked into outlook solution.

  25. Is it possible to give some idea as how to achieve opening of office document links to sharepoint document library from a e-mail client in edit mode (E-mails sent by SP workflow)

    • It depends which mail client it it desktop client? if it is web based e mail client it could be security issue to have links to open files. I have not tested this approach with desktop email client just with web application, this workaround works with web apps.

  26. Here’s a challenge: One MOSS site. One doc library where your word docs are stored. Then, within the same site, you have a custom list.

    Upload 3 test word documents to the document library, no problem.

    One of the columns in the custom list is a Hyperlink column, which as you know contains both the URL to the resource as well as its name.

    Within this custom list, you put a hyperlink to the word documents in your document library. 3 list items, 3 hyperlinks.

    When you view the custom list items, you see a hyperlink to the word doc. You click the link, which opens the word doc read-only on your machine. You are not prompted to edit it on open. nevertheless, you open the document in read-only, make some changes, and go to exit word.

    Word prompts you to save the document, which it assumes is right back in the document library you opened it from. Now, even though you’re a contributor/admin on all lists, libraries, and sites in SharePoint, you cannot save the document OVER the old document – you are told you must save it as a different name because you have it opened read only. BUG or FEATURE? BUG, I believe.

    You may try to go around this by using office 2007/2010’s feature which allows you to Check Out Document (under the office button–>server–>Check out document), but it will NOT show up as an option in Office 2007 or 2010, even though the document was opened from within a sharepoint list you have full admin rights to. BUG!

    This is a most peculiar behavior. I’m not sure how to work around this.

    I believe this is similar, but not the same, as opening a hyperlink in word document, though not the same, because you are IN sharepoint when it happens.

    I will try the file:\\foo.com/library/test.docx option instead of http://foo.com/library/test.docx, which I’ve been told might work.

  27. […] http://dotnetninja.wordpress.com/2009/01/12/how-to-open-sharepoint-documents-in-edit-mode-with-inter… […]

  28. Does anyone know how to open an office document, located in a database and delivered by a http handler with SharePoint.OpenDocuments control?
    Thanks and regards.

  29. you’re a genius

  30. […] I’ve found another blog which suggests a registry change, however these can be quite risky: http://dotnetninja.wordpress.com/2009/01/12/how-to-open-sharepoint-documents-in-edit-mode-with-inter… […]

  31. Thanks for your script. I have used and it works great….one little thing. On Sharepoint 2010 after clicking on the document the browser redirects to the document list away from my webpart..Do you know what the cause may be

    thanks

  32. Brilliant sir.

  33. Hi,

    This is really interesting, thanks.. I’ve got it working fine for a fixed document URL, but I’m now trying to implement it within a data view (using SP03).

    I’ve modified the A tag from

    to:

    But i just get a script error “missing )” – i’m pretty sure there is no missing bracket!

    Any help would be gratefully received, thanks,

    Mark

  34. Hi,

    This is really interesting, thanks.. I’ve got it working fine for a fixed document URL, but I’m now trying to implement it within a data view (using SP03).

    I’ve modified the A tag from

    A onfocus=”OnLink(this)” HREF=”{$HttpHost}{@FileRef}” onclick=”DispDocItemEx(this,”,”,”,”)”

    to:

    A href=”” onclick=”editDocumentWithProgID2(‘{$HttpHost}{@FileRef}’, ”, ‘SharePoint.OpenDocuments’, ‘0’, ‘http://[the.site.url], ‘0’)”

    But i just get a script error “missing )” – i’m pretty sure there is no missing bracket!

    Any help would be gratefully received, thanks,

    Mark

  35. Hi
    This is a great piece of work but I am facing an issue. The ‘server properties’ defined for the document will not be saved in the document library and vice versa. But if I create or modify a word document manually and change the ‘server properties’ I would see the changes in the doc lib.

  36. Apologies for this silly questions, I am a newbies.

    What do I need to run this script? Do I need to modify any config file to run this script?

  37. Very nice!
    I had the same issue to open in read/write a file attached to a list item, and now works perfectly!

  38. I am sorry that I have not read all comments last year (time issue), if anyone else can answer all this question (has time) please do so!

  39. Based on you script I developped a small one.
    Principle : you have a custom list with attached documents, and you want them to open directly in read/write.
    Paste the script below inside a webpart in your form, then it’ll “rewrite” all attachements url and drive them to open docs in read/write.

    function JS_OpenDoc(){
    url = this.href.replace(‘#’, ”);
    editDocumentWithProgID2(url, ”, ‘SharePoint.OpenDocuments’, ‘0’, ‘http://demo-1/blankpage’, ‘0’)

    }

    JS_attach = document.getElementById(“idAttachmentsTable”);
    var myAttach = JS_attach.getElementsByTagName(“a”);
    for(var j=0; j < myAttach.length; j++)
    {
    myAttach[j].onclick = JS_OpenDoc;
    myAttach[j].href = '#' + myAttach[j].href;

    }

    • Hi Zaz am i write in thinking I can just add the code you have written below in a webpart under the document libary?
      Does the link need to be the same as the document libary link?

      I am offering a solution to user who are having problems opening documents with office 2003 , they will not ope in edit mode. As I am not based where these users are all I can do is offer them a written solution as VNC is not possible, would your code work?
      Thanks
      Michael

  40. Hi,

    I am not a SharePoint developer. I need to view in a C# 4.0 browser control some image files (scanned documents) that are in a SharePoint server across the world.

    I know there is a SharePoint API which I have downloaded and installed already. I imagine that all I need is probably just a web service call with the proper parameters set, but I have no idea where to start.

    I have been give a SharePoint server user and password, and a document link to test the routine.

    Thanks for any help. Any hint will be very appreciated.

    Eduardo Quintana

  41. […] How to open SharePoint documents in Edit mode with Internet Explorer 6 and Windows XP (without regfi… CategoriasDicas, Erros e soluções LikeBe the first to like this post. Comentários (0) Trackbacks (0) Deixar um comentário Trackback […]

  42. […] How to open SharePoint documents in Edit mode with Internet Explorer 6 and Windows XP (without regfi… LikeBe the first to like this post. […]

  43. Y O U A R E T H E B E S T!!! Exactly what I was looking for!!!

  44. Hello.

    Great idea. I tried accessing your link “here” which has the tailored javascript, but the link to skydrive is broken. Can you please repost or send me the custom js file you used?

    I looked through the core.js file from the sharepoint site and it is fairly complicated. I tried copying the entire js file, but unfortunately that does not work. I am using SharePoint 2010 and silverlight.

    Thanks,

    Dave

  45. Thanks a lot for your blog, i appreciate it.

  46. Very nice alternative for 2003 users, although I’m amazed Microsoft hasn’t provided a proper solution. Prevously i was mapping a network drive to the document library location which also worked but meant that you had to also select the file.

  47. […] found another blog which suggests a registry change, however these can be quite risky: http://dotnetninja.wordpress.com/2009/01/12/how-to-open-sharepoint-documents-in-edit-mode-with-inter… Share this:TwitterFacebookLike this:LikeBe the first to like this. Comments RSS […]

  48. Hi Ninja, How can limit the registry option to ONLY Sharepoint IE link documents? I would like NOT to have this option tuned on for all Documents from IE as that would be a security risk?

    Thanks

  49. […] dass die Datei schreibgeschützt ist. Es gibt aber eine Möglichkeit, dies zu ändern. In diesem Artikel steht wie es geht – hier nochmal als Backup: <a href="" […]

  50. That is a really good tip especially to those new to the blogosphere.
    Brief but very accurate info… Thanks for sharing this one.

    A must read post!

  51. You truly outdid yourself this post. Well done

  52. […] You can read the following very detailed and intresting post: How to open SharePoint documents in Edit mode with Internet Explorer 6 and Windows XP (without regfi…. […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: