[使用C#访问JS变量

问题描述 投票:0回答:1

我有一个变量,该变量在页面加载时在最终脚本标签中设置,因为访问DOM(使用第3方库)需要此变量。我想访问我的变量,但是通过C#(ASP Web应用程序)访问它时,我得到了“未定义”。

我该如何访问?

如果我从C#运行以下命令:

ClientScript.RegisterStartupScript(GetType(), "hwa", "hello();", true);

我收到以下错误:https://i.stack.imgur.com/veiLB.png

我的问候功能是:

function hello() {
 alert(mapData);
}

mapData变量是在正文末尾的脚本标签中设置的,我的原始代码是在加载网站后调用JS函数,但是通过C#出现未定义,但如果使用Web则会显示控制台。

完整脚本:

function createMap() {
mapData = L.map('map', {
    center: [20.0, 5.0],
    minZoom: 2,
    zoom: 5
});

L.mapData = mapData;

L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',
    subdomains: ['a', 'b', 'c']
}).addTo(L.mapData);
}

function createMarker(long, lat, type) {
    alert(L.mapData);
    L.marker([long, lat], { icon: L.icon({ iconUrl: 'Content/img/' + type + '.png', iconSize: [50, 60], iconAnchor: [22, 94], popupAnchor: [-3, -76], }) }).addTo(L.mapData);
}

function hello() {
    alert(mapData);
}
javascript c# webforms
1个回答
0
投票

看起来好像在实例化mapData之前就调用了hello方法。

我看不到它的实例化位置,但是您可以如下更改注册脚本:

ClientScript.RegisterStartupScript(GetType(), "hwa", "createMap(); hello();", true);

请注意,您可能要向您的create函数添加一个hello回调。

有关您在此处尝试执行的操作的更多信息也可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.