9

リンクされた.jsファイルに変数を渡すことは可能ですか?私はこれを試しました:

<sf:JsFileLink ID="JQueryLoader" runat="server" ScriptType="Custom" FileName="~/Files/Scripts/rotatorLoader.js?timeout=1000" />

しかし、firebugは、タイムアウトが定義されていないことを教えてくれます。その.jsファイルのコードは次のとおりです。

$(document).ready(function() {
    $("#rotator > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", timeout, true);
});

私が<sf:JsFileLink ... />タグを使用しているのは、私が作業しているWebサイトがsitefinityを利用しており、このタグを使用して外部の.jsファイルをロードできるためです。

アップデート:

javascriptページをエミュレートするaspxページを作成することで、インクルードを「だます」ことができました。

<%@ 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);
});

そして、ユーザーコントロールページで:

[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));
    }
}

これは私が探していたものを達成しました、そして多分この方法は他の誰かを助けることができます。

4

4 に答える 4

16

いいえ、そのようなパラメータを渡して、スクリプトにそれらを読み込ませることはできません。

技術的にはタグからそれらを取得することができますが<script>、それは本当の混乱になります。

ファイルを含める前に、スクリプトブロックを出力できますか?

<script type="text/javascript"> var timeout = 1000; </script>
于 2009-08-27T21:26:10.763 に答える
14

これを試して:

<script>
var myvariable = "foo";
</script>
<script src="/link/to/js.js"></script>
于 2009-08-27T21:26:16.553 に答える
3
<script type="text/javascript">
var imagesPath = "emblematiq/img/";
</script>
<script type="text/javascript" src="emblematiq/niceforms.js"></script>

これはサーバー上で正常に機能します

于 2012-10-07T08:50:41.687 に答える
0

いいえ。ただし、値をそのファイル内の関数に直接渡すか、外部ファイルで使用される変数値を設定することができます。

于 2009-08-27T21:26:11.997 に答える