4

I have a script that pulls data from my CMS and then allows a person to vote on a poll. The script works fine. However, I have Ad Block Plus Plugin installed in Firefox. When that is enabled to blocks the script from submitting the form correctly. It appears to submit correctly in the front end but is never registered in the back end.

Why does Ad Block Plus block my script that has nothing to do with ads?

The script is below:

$(document).ready(function () { var Engine = { ui: { buildChart: function() { if ($("#pieChart").size() === 0) { return; } var pieChartData = [], totalVotes = 0, $dataItems = $("ul.key li"); // grab total votes $dataItems.each(function (index, item) { totalVotes += parseInt($(item).data('votes')); }); // iterate through items to draw pie chart // and populate % in dom $dataItems.each(function (index, item) { var votes = parseInt($(item).data('votes')), votePercentage = votes / totalVotes * 100, roundedPrecentage = Math.round(votePercentage * 10) / 10; $(this).find(".vote-percentage").text(roundedPrecentage); pieChartData.push({ value: roundedPrecentage, color: $(item).data('color') }); }); var ctx = $("#pieChart").get(0).getContext("2d"); var myNewChart = new Chart(ctx).Pie(pieChartData, {}); }, // buildChart pollSubmit: function() { if ($("#pollAnswers").size() === 0) { return; } var $form = $("#pollAnswers"), $radioOptions = $form.find("input[type='radio']"), $existingDataWrapper = $(".web-app-item-data"), $webAppItemName = $existingDataWrapper.data("item-name"), $formButton = $form.find("button"), bcField_1 = "CAT_Custom_1", bcField_2 = "CAT_Custom_2", bcField_3 = "CAT_Custom_3", $formSubmitData = ""; $radioOptions.on("change", function() { $formButton.removeAttr("disabled"); // enable button var chosenField = $(this).data("field"), // gather value answer_1 = parseInt($existingDataWrapper.data("answer-1")), answer_2 = parseInt($existingDataWrapper.data("answer-2")), answer_3 = parseInt($existingDataWrapper.data("answer-3")); if (chosenField == bcField_1) { answer_1 = answer_1 + 1; $formSubmitData = { ItemName: $webAppItemName, CAT_Custom_1: answer_1, CAT_Custom_2: answer_2, CAT_Custom_3: answer_3 }; } if (chosenField == bcField_2) { answer_2 = answer_2 + 1; $formSubmitData = { ItemName: $webAppItemName, CAT_Custom_1: answer_1, CAT_Custom_2: answer_2, CAT_Custom_3: answer_3 }; } if (chosenField == bcField_3) { answer_3 = answer_3 + 1; $formSubmitData = { ItemName: $webAppItemName, CAT_Custom_1: answer_1, CAT_Custom_2: answer_2, CAT_Custom_3: answer_3 }; } prepForm($formSubmitData); }); function prepForm(formSubmitData) { $formButton.click(function(e) { e.preventDefault(); logAnonUserIn("anon", "anon", formSubmitData); // log user in }); // submit } // prepForm function logAnonUserIn(username, password, formSubmitData) { $.ajax({ type: 'POST', url: '/ZoneProcess.aspx?ZoneID=-1&Username=' + username + '&Password=' + password, async: true, beforeSend: function () {}, success: function () {}, complete: function () { fireForm(formSubmitData); } }); } // logAnonUserIn function fireForm(formSubmitData) { // submit the form var url = "/CustomContentProcess.aspx?A=EditSave&CCID=13998&OID=3931634&OTYPE=35"; $.ajax({ type: 'POST', url: url, data: formSubmitData, async: true, success: function () {}, error: function () {}, complete: function () { window.location = "/"; } }); } } // pollSubmit } // end ui }; Engine.ui.buildChart(); Engine.ui.pollSubmit(); }); 
4
  • I have also saw that behavior with Chrome. It returns net::ERR_BLOCKED_BY_CLIENT, but I don't know why. Commented May 9, 2014 at 16:43
  • +1 for not spamming "var". Note: I have encountered this kind of problem with adBlockPlus when getting images whose file path contain the folder /ad/, it may put you on a track... Commented May 9, 2014 at 16:44
  • Probably something in querystring/file name matches a rule in the adblocker file filter list. Commented May 9, 2014 at 16:48
  • 1
    @nicolallias - I have seen that as well. I cannot find anything with the word "ad" on the page. Commented May 10, 2014 at 2:19

1 Answer 1

2

As it turns out easylist contains this filter:

.aspx?zoneid= 

This is why my script is being blocked.

I was told I can try this exception filter:

@@||example.com/ZoneProcess.aspx?*$xmlhttprequest 

I could also ask easylist to add an exception.

Answer comes from Ad Block Plus Forums.

Sign up to request clarification or add additional context in comments.

1 Comment

Yea, well, adding local exceptions doesn't help the individual users.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.