Is it possible to pass a variable to a linked .js file? I tried this:
<sf:JsFileLink ID="JQueryLoader" runat="server" ScriptType="Custom" FileName="~/Files/Scripts/rotatorLoader.js?timeout=1000" />
But firebug is telling me that timeout is not defined. Here is the code for that .js file:
$(document).ready(function() {
$("#rotator > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", timeout, true);
});
I am using <sf:JsFileLink ... />
tag is because the website I am working in utilizes sitefinity and this tag allows me to load external .js files.
UPDATE:
I was able to 'trick' the include by creating an aspx page that emulates a javascript page:
<%@ Page Language="C#" %>
<%
Response.ContentType = "text/javascript";
Response.Clear();
string timeout;
try
{
timeout = Session["timeout"].ToString();
}
catch
{
timeout = "4000";
}
%>
$(document).ready(function() {
$("#rotator > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", <%=timeout %>, true);
});
And on the user control page:
[DefaultProperty("BannerTimeout")]
public partial class Custom_UserControls_TabbedRotator : System.Web.UI.UserControl
{
[Category("Configuration")]
[Description("Sets the rotation timeout, in seconds.")]
[DisplayName("Banner Timeout")]
public int BannerTimeout { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Session.Add("timeout", (BannerTimeout*1000));
}
}
This achieved what I was looking for, and maybe this method can help someone else out.
No, you can't pass parameters like that and have the script read them in.
Technically you could grab them from the <script>
tag, but that would be a real mess.
Could you just output a script block before you include the file?
<script type="text/javascript"> var timeout = 1000; </script>
try this:
<script>
var myvariable = "foo";
</script>
<script src="/link/to/js.js"></script>
<script type="text/javascript">
var imagesPath = "emblematiq/img/";
</script>
<script type="text/javascript" src="emblematiq/niceforms.js"></script>
This will work fine on server
No, but you can pass a the value directly to a function in that file or set a variable value that will be used in the external file.
来源:https://stackoverflow.com/questions/1343801/pass-variable-to-external-js-file