gpt4 book ai didi

javascript - 客户端 <script> 标记中服务器端经典 ASP 代码的问题

转载 作者:行者123 更新时间:2023-11-28 08:42:30 25 4
gpt4 key购买 nike

我正在对页面进行故障排除(在经典 ASP 中),并在 <head> 中偶然发现了以下代码段标签(注#1:我使用 VS2012 作为编辑器;注#2:我没有编写此代码):

    <script type="text/javascript">
var EditHelp = '<%=Session("editHelp")%>';
<%If Request.Form.Count Then%>
window.opener.location.replace(window.opener.location);
<%End If%>
</script>

VS 告诉我 <script>标签不喜欢任何服务器端<% %>代码(它告诉我“语法错误”),并且页面无法正确呈现。 <script> 之外的其他地方似乎都可以。标签。 VS似乎无法识别<% %> <script> 内的标签标签。他们似乎在其他地方都很好。

我以前从未遇到过这种情况。有人可以告诉我为什么这会导致问题吗?

最佳答案

当您说页面未正确呈现时,您的意思是在 Visual Studio 本身的设计 View 中吗?使用普通的 ASP 经典解释器,它仍然可以通过 IIS 正确运行吗?如果是这样,我会将其归结为 Visual Studio 的语法突出显示/错误检查与解释器本身不同,并且复杂的边缘情况可能会在 Visual Studio 中引发误报错误。我过去在现代版本的 Visual Studio 中见过类似的情况,并且总是发现只要页面通过 IIS 正常工作,就可以在 Visual Studio 中安全地忽略它们。

我发现原始代码中唯一存在潜在问题的部分是,如果 Session("editHelp") 包含 ' ,它将损坏 JavaScript 代码。如果该字符串尚未在代码中的其他位置进行清理,则执行 Replace(Session("editHelp"), "'", "\'") 或类似操作可能会更安全。

除此之外,我看不出它有什么问题,但是为了“从您的查询中消除它”,您可以用合适的虚拟静态内容替换所有 ASP block 并以这种方式运行它,看看是否您的渲染问题仍然存在。如果它仍然存在,您可以安全地消除它。如果它消失了,需要进行更多调查吗?

关于javascript - 客户端 &lt;script&gt; 标记中服务器端经典 ASP 代码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com