Get Design View back on SharePoint 2013 (woohoo!)
Want to use Design View on a 2013 site? Well, now you can.
With a Fiddler HTTP function we can adjust the server response to say “14” instead of “15” and open any SharePoint 2013 site with SharePoint Designer 2010 to have access to classic Design View. Obviously there are downsides to this approach (not formally supported), but it also can be useful in many scenarios. Check it out and please leave a comment if you find this helpful.
Instructions
- Download Fiddler http://www.telerik.com/fiddler
- Download SP Designer 2010 http://www.microsoft.com/en-us/download/details.aspx?id=16573
- Launch Fiddler, press Ctrl + R, and update the Custom Rules JS file with the code below
- Launch SP Designer 2010 and open site URL
- Have fun!
Fiddler
You need to add Custom Rules to Fiddler. There are two options:
- Download CustomRules.JS with custom logic
- Copy the below code and add to your local CustomRules.JS file in the function OnBeforeResponse(oSession: Session).
// START BLOG POST from @spjeff
// https://www.spjeff.com/2014/05/08/get-design-view-back-on-sharepoint-2013-woohoo
//INF
if (oSession.oRequest["User-Agent"] == "Mozilla/4.0 (compatible; MS FrontPage 14.0)" &&
oSession.PathAndQuery == "/_vti_inf.html") {
// Remove any compression or chunking
oSession.utilDecodeResponse();
if (oSession.responseBodyBytes) {
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Replace strings
oBody = oBody.replace("FPVersion=\"15.00.0.000\"", "FPVersion=\"14.00.0.000\"");
oSession.utilSetResponseBody(oBody);
}
}
//RPC
if (oSession.oRequest["User-Agent"] == "MSFrontPage/14.0" &&
oSession.PathAndQuery == "/_vti_bin/shtml.dll/_vti_rpc") {
// Remove any compression or chunking
oSession.utilDecodeResponse();
if (oSession.responseBodyBytes) {
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Replace strings
oBody = oBody.replace("major ver=15", "major ver=14");
oSession.utilSetResponseBody(oBody);
}
}
//AUTHOR
var suffix = "/_vti_bin/_vti_aut/author.dll";
if (oSession.oRequest["User-Agent"] == "MSFrontPage/14.0" &&
oSession.PathAndQuery.indexOf(suffix, oSession.PathAndQuery.length - suffix.length) !== -1) {
if (oSession.responseBodyBytes) {
// Remove any compression or chunking
oSession.utilDecodeResponse();
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Replace strings
oBody = oBody.replace("
Use Cases
- Support upgraded 2010 sites. If you developed with SP Designer 2010, you might need Design View to support sites after upgrade to 2013.
- New HTML and CSS creation. WYSIWYG can be great for making simple files to support new JavaScript development.
- DataFormWebPart . Create blank ASPX page, add the DataFormWebPart and Conditional Formatting with WYSIWYG, then copy finished <DataFormWebPart> code tag into a 2013 native ASPX page.
Notes
- Non intrusive approach. Fiddler runs local on the developer’s machine. No server changes or changes for end users.
- This doesn’t give you Design View of any native 2013 ASPX page. Those are fundamentally different with new Minimal Download Strategy async load, new master page, and other stuff so it just shows a gray background.
- Not formally supported.
- Cool way to support SP2010 upgraded sites.
References
- http://blogs.office.com/2012/10/10/changes-to-the-design-view-in-sharepoint-designer-2013/
- http://docs.telerik.com/fiddler/knowledgebase/fiddlerscript/modifyrequestorresponse

Wow, thank you!
Can you place the customrules.js back on your one drive please
Absolutely. Uploaded Fiddler 4 CustomRules.JS to GitHub. Updated blog post link too. https://github.com/spjeff/spadmin/blob/master/get-design-view-back-on-sharepoint-2013-wooho/CustomRules.js#L164-L202
🙁 Doesn’t work for me. I get “Error Creating Control” all throughout the design view of my site.
I got pretty excited about this. I have installed Fiddler 4.6.0.2. I updated my rules to the one you have in Git. When I attempt to launch a SharePoint 2013 site in SharePoint 2010 Fiddler throws an error. Any ideas?
There was a problem with your FiddlerScript.
Array cannot be null.
Parameter name: bytes
at System.Text.Encodinig.GetString(Byte[] bytes)
at FiddlerScriptNamespace.Handlers.OnBeforeRequest(Session oSession)
at Fiddler.FiddlerScript.DoBeforeRequest(Session oSession)
Want to upload your Fiddler JS somewhere and link here? Gist?
Probably a syntax or typo issue. Opening with VS Code and JSHint plugin often helps me find JS typos.
I can but all I did was open your link to git, click on the RAW link, select all, copy and paste over my entire js rules file. So essentially…. https://raw.githubusercontent.com/spjeff/spadmin/master/get-design-view-back-on-sharepoint-2013-wooho/CustomRules.js
JS looks correct. No typos.
Almost seems to be that (oSession.responseBodyBytes) is null and the parent call to System.Text.Encoding.UTF8.GetString() fails.
I added IF statement to test for NULL as a safety measure.
Want to apply new JS rules and test again?
Highlighted relevant JS code block at
https://github.com/spjeff/spadmin/blob/master/get-design-view-back-on-sharepoint-2013-wooho/CustomRules.js#L164-L208
Note lines #171,185,198 for the new IF statement to first test for NULL before reading text.
The good news is the errors went away. The bad news is I get the standard message about not being able to open web sites with versions other than 2010 when I attempt to open a 2013 site.
Any other thoughts as to what could be my issue?