How To Make JSFiddle Default To jQuery Library – Update

In my resolve to not allow my self to go to the same problem of making JSFiddle default to jQuery library , I installed the user script from JohnKPaul to my Chrome browser as an extension. However, after restarting my machine and opening a Chrome window, there is a warning that “the extension is not from Web Store”

Unsupported Extensions Disabled

The warning message when opening again Chrome.

Chrome Allowing Extensions Only From Web store

When you go to chrome://extensions you will see that the extension is now disabled and not working. You cannot enable the extension even if you click “Enable”. No extension means JSFiddle will default back to the “No-Library (pure JS)” library.

Disabled User Script Not From Web Store

User script has been disabled by Chrome. There was no way to enable it.

JSFiddle Default Library No JS

Create Chrome extension for the User Script

When I posted How To Make JSFiddle Default To jQuery Library, it was my plan to convert the user script to a Chrome extension to be able to try and create a Chrome extension myself. I always imagine that someday I can create a Chrome extension and send it to the official Chrome Web Store so everyone can download it. So I think creating a Chrome extension will solve the problem of the user script being disabled since it is not from the Web Store.

Steps on creating the Chrome extension

First, create a manifest.json file. This will contain the information about the extension. The existing extensions you have in your Chrome has their own a manifest.json file. They are located in the Chrome extensions folder C:\Users\[user]\AppData\Local\Google\Chrome\User Data\Default\Extensions.


{
"name": "JSFiddle Default Library to JQuery",
"version": "1",
"manifest_version": 2,
"content_scripts": [{
"js": ["jsfiddle.changedefault.user.js"],
"matches": ["http://jsfiddle.net/*"]
}]
}

Then copy the user script to the same location as the manifest.json.

Extension Folder

How to install the Chrome extension

From the Extensions page, click “Developer Mode”

Chrome extensions Developer mode

Click Load unpacked extension… and then browse to the location of your manifest.json file. Press “Ok” and then you will notice that the extension is now installed and active from the Extensions page.

Testing the new Chrome extension

Now that the extension is installed, go to JSFiddle.Net. The extension made JSFiddle default to jQuery library when you create a new script.

Chrome extension Enabled

JsFiddle Default Library jQuery

Warnings when you restart Chrome

When you restart Chrome you might encounter a warning like the one below.

Disable Developer Mode Extensions Warning

This is a warning to disable developer mode extensions. This is because of the extension added for the user script in developer mode. I will try to make a Chrome extension from the Web Store from this extension in my next post. See you around…

How To Make JSFiddle Default To jQuery Library

You click Run or hit Ctrl+Enter from your JSFiddle session but nothing happens. Yes, that simple jQuery script you are trying to run seems too simple not to work, isn’t it? Then you notice that yes there is an option located in the left side of JSFiddle to choose the javascript library you want to use. You select the latest jQuery version available from the list and click Run. You just had the last 10 minutes sorting out the script making sure it is a valid jQuery script but the problem is that JSFiddle is not using jQuery as the default javascript library. That happened to me too many times, that its really frustrating.

I forgot to make JSFiddle default to jQuery library.

I often forget to make JSFiddle default to jQuery library when my brain is to eager to try and fiddle with an idea and turn it into an actual jQuery script. When you start from scratch JSFiddle’s default library is set No library (pure JS).

JSFiddle Default Library No JS

You need to choose what library you want to use before diving in and coding into the Javascript pane. There must be a way to make JSFiddle default to jQuery library. The left side of JSFiddle is the area for user options. I was trying to find a setting that will make JSFiddle default to jQuery library. But there is no option for that as of this writing.

JohnKPaul user script

I came across the blog post of Mr. JohnKPaul for Changing jsFiddle’s default library to jQuery. He had the same experience using JSFiddle with the library not using jQuery by default. He created a chrome user script to solve this problem. The user script will make JSFiddle default to jQuery library. Perfect!

How do I apply the user script to Chrome?

I’m not familiar with user scripts. Now I have a user script to use on Chrome for my JSFiddle problem but I do not know how to set it up. I attempted to search for an extension to handle users cripts and it pointed me to use TamperMonkey Chrome extension.

TamperMonkey

Tampermonkey userscript manager

TamperMonkey is the Chrome version of GreaseMonkey in Firefox to house and run user scripts. I thought I had the solution to install and setup the user script to Chrome using TamperMonkey but I came across a better solution.

Install the user script using chrome://extensions

A more direct way of installing user scripts in Chrome is to just go directly to the Chrome extensions page. From Chrome go to chrome://extensions and then drag the user script file to the page.

Userscript install to Chrome

JSFiddle User Script Installed in Chrome

The user script will be installed like any extension in Chrome.

JsFiddle Default Library jQuery

Now when you go to JSFiddle and create a new fiddle session, the default library is now showing jQuery 2.x(edge) as the Javascript library. Now I’m happy! 🙂

UPDATE : It seems Google does not allow user scripts to be installed directly to Chrome. I made another blog post as an update to this. Check it here How To Make JSFiddle Default To jQuery Library – Update

Ajax Not Passing Parameters Using Internet Explorer – Solved

I was trying a simple ASP.Net project that calls a web service using AJAX. I just want to try some stuffs I can do with AJAX and JQuery in my desktop. Sort of just diving into the code and expecting that as simple as this would work in 5 minutes. But no, I guess its that kind of a problem that will only happen in your machine and not with others. Thanks to the Download Accelerator Plus installed on my machine I would have not encountered Ajax not passing parameters to the web service. Arrgh!.

Ajax Not Passing Parameters

As you would expect, I got the following components in my ASP.Net project to work on the  simple Ajax call test that I want to do.

Web Service

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string CheckIfGalaxyGuardian(string guardian)
{
var guardians = new[] { "Peter", "Gamora", "Drax", "Groot", "Rocket" };

if (guardians.Any(x => x == guardian))
return "We are Groot!";
else
throw new Exception(string.Format("{0} is not a Guardian.", guardian));

}

 

 Asp.Net Page

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>JSON Exception Sample</title>
<script src="Scripts/jquery-1.8.2.min.js"></script>
<script src="Scripts/Guardian.js"></script>
<meta http-equiv="x-ua-compatible" content="IE=9" />
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" id="btnSubmit" value="Check Galaxy Guardian"/>
<input type="text" id="name"/>
</div>
</form>
</body>
</html>

 

Javascript

$(document).ready(function () {

$("input[type=button]").click(function () {

var guardian = $("input[type=text]").val();

// Ajax call to service.asmx.
$.ajax({
type: 'POST',
url: 'GuardianSvc.asmx/CheckIfGalaxyGuardian',
data: JSON.stringify({ guardian: guardian }),
contentType: "application/json",
dataType: 'json',
success: function (result) {
alert(result.d);
},
error: function (result) {
var e = JSON.parse(result.responseText);
alert(e.Message);
}
});

});

});

 Invalid web service call, missing value for parameter error

When I ran the application I got the error : Invalid web service call, missing value for parameter… Ajax is not passing the parameters to the web service. When you look at the message in fiddler it will show you that no data was passed into the request.

Fiddler Request Message  Before DAP

Fiddler Response Message  Before DAP

When I tried to use Chrome, it works. So what is wrong with using Internet Explorer?

I tried using the Chrome browser and voila everything is working as expected. I did not do any change in my code. It just works with Chrome.  I tried searching about the issue and I got into this Stackoverflow post about IE refusing to send POST data. One of the comments recommended that uninstalling FDM (Free Download Accelerator) fixed the issue for him. I remember having a download manager on my machine so I tried to look  a download manager installed and saw that Download Accelerator Plus is installed. My hope is restored.

Disable Download Accelerator Plus or Free Download Manager

Download Accelerator Plus  Disable IE Integration

Try again with IE

After disabling DAP on my Internet Explorer, I tried running the same web project and now it works.

Fiddler Response  Ajax working in IE

Not A Guardian

Galaxy Guardian

If you can search Google and hopefully see this post the first time you encountered the same problem, congratulations! I might have saved you couple of hours debugging your program 🙂