F-ES Sitecore
Любые переменные javascript, генерируемые вашим кодом, можно использовать из внешних файлов js, вам просто нужно убедиться, что переменная не читается до ее определения. Вы можете сделать это, убедившись, что файл js включен после определения вашей переменной, или используя что-то вроде события document ready для запуска вашего кода, который обращается к переменным. В этом примере я показываю два способа создания переменной: один-с помощью литерала, другой-с помощью диспетчера сценариев. Если вы используете razor, то первый метод будет работать с обычной разметкой razor.
<body>
<form id="form1" runat="server">
<div>
<script type="text/javascript">
var a = '<asp:Literal ID="LiteralA" runat="server" />';
</script>
</div>
</form>
<script src="External.js"></script>
</body>
protected void Page_Load(object sender, EventArgs e)
{
string text = "Hello";
// Method 1, use a literal
LiteralA.Text = text;
// Method 2, get ClientScript to generate the markup
string js = string.Format("var b = '{0}';", text);
Page.ClientScript.RegisterStartupScript(this.GetType(), "setb", js, true);
}
Тот самый external.js файл
if (typeof (a) !== "undefined") {
alert(a);
}
if (typeof (b) !== "undefined") {
alert(b);
}