Serveride code execution from javaScript

Not sure if this is possible or not, but here is my scenario:

In about 10 of our aspx files, we have the same javaScript function, I want to remove it from all these pages and put it in the main javaScript file (main.js), which is global for all pages, so it’s easier to maintain, javaScript code on current pages, aspx looks something like this:

var regEx_gaid = <%= regEx["regEx_gaid"] %>; 
var regEx_wCard = <%= regEx["regEx_wildCard"] %>; 
var regEx_fCss = <%= regEx["regEx_flattenCss"] %>; 
var regEx_iCss = <%= regEx["regEx_inlineCss"] %>;
...

function doSomething() {
   // do something with those variables declared above.
}

Not sure how to get server-side values ​​for these variables in main.js.

It may also be relevant:

"regEx" inside <%= regEx["regEx_gaid"] %>is a collection of dictionaries on the server side, and "regEx_gain" is the key to access the value of the regEx dictionary.

Thank.

+5
source share
3 answers

ASP, . AJAX javascript.

JQuery :

var regEx_gaid = "";

$.get('regex_gaid.aspx', function(data) {
  regEx_gaid = data;
});
+1

javascript- , RegisterStartupScript:

this.ClientScript.RegisterStartupScript(this.GetType(), "MainVars", "var regEx_gaid = '" + regex_gaid.ClientID + "';", true);

: ( ), script ( main.js).

+1

Can you add main.js.aspxand then move the scripts in main.jsto main.js.aspxand use the main.js.aspx file as a javascript file?

main.js.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="TempProject.js.main" %>
var regEx_gaid = <%= regEx["regEx_gaid"] %>; 
var regEx_wCard = <%= regEx["regEx_wildCard"] %>; 
var regEx_fCss = <%= regEx["regEx_flattenCss"] %>; 
var regEx_iCss = <%= regEx["regEx_inlineCss"] %>;

CodeBehind:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "application/javascript";
    }

Other files:

<script type="text/javascript" src="js/main.js.aspx"></script>
+1
source

All Articles