吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 620|回复: 15
收起左侧

[其他求助] html请教!

[复制链接]
菜鸟天堂 发表于 2024-5-6 04:03
30吾爱币
[HTML] 纯文本查看 复制代码
<script>

var per=<%=request.cookies("a")%>;

var value=<%=request.cookies("b")%>;

var value20=<%=request.cookies("b")%>*<%=rs("c")%>;

window.onload=function autoCac(){

var result=document.getElementById("result");

result.innerHTML=value*per+value20;

}

</script>

<script language="javascript">

 top.location='<%=rs("1")%>/<span id="result">/<%=rs("2")%>';

</script>



请教大佬,作为跳转链接,<span id="result">没起到作用,是不是计算结果太慢链接跳转过去了?

最佳答案

查看完整内容

从您提供的代码片段来看,尝试在JavaScript中动态生成并应用跳转链接的方式存在逻辑上的问题。特别是,您试图利用来在URL中动态插入计算结果,但这种做法是不会生效的。HTML内容(如元素)不会在JavaScript字符串或URLs中被解析或执行。 问题分析 动态内容更新问题: 在top.location这行代码中实际上是静态文本,并不会被浏览器解释为JavaScript里的result变量的内容。换句话说,您试图将HTML元素插入到JavaScript字符串中 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

goodname521 发表于 2024-5-6 04:03
从您提供的代码片段来看,尝试在JavaScript中动态生成并应用跳转链接的方式存在逻辑上的问题。特别是,您试图利用<span id="result"></span>来在URL中动态插入计算结果,但这种做法是不会生效的。HTML内容(如<span>元素)不会在JavaScript字符串或URLs中被解析或执行。

问题分析
动态内容更新问题:

<span id="result">在top.location这行代码中实际上是静态文本,并不会被浏览器解释为JavaScript里的result变量的内容。换句话说,您试图将HTML元素插入到JavaScript字符串中,这是不可行的。
解决方案方向:

如果您的目的是根据一些动态计算结果来重定向用户到不同的URL,您应该完全在JavaScript中完成这项工作,不依赖HTML内容来实现动态部分。
解决方案示例
考虑到您的场景,以下是一种可能的解决方案,它在window.onload事件中完成所有计算和重定向的逻辑:

html
[HTML] 纯文本查看 复制代码
<script>

window.onload = function() {
    var per = <%= request.cookies("a") %>;
    var value = <%= request.cookies("b") %>;
    var value20 = <%= request.cookies("b") %> * <%= rs("c") %>;
    var result = value * per + value20;

    // 现在result变量包含了您计算的结果,您可以使用它来构建跳转的URL
    var targetUrl = "<%= rs('1') %>/" + result + "/<%= rs('2') %>";
    top.location = targetUrl; // 使用计算出的result值进行页面跳转
};

</script>

注意:这个示例代码依赖您服务器端代码(假设是ASP.NET或类似环境)正确解析和返回值。确保服务器端代码返回合适的值,并且适当地处理了任何可能的类型转换问题。

安全注意事项
直接在JavaScript中嵌入服务器端表达式(如<%= ... %>)可能会导致跨站脚本攻击(XSS),特别是如果任何这些值是用户可控的。请确保适当地对这些值进行编码或清理,以减少安全风险。
当处理重定向时,确保构建的目标URL是可预测且安全的,避免可能导致重定向攻击的情况。

供参考

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
菜鸟天堂 + 2 + 1 热心回复!

查看全部评分

 楼主| 菜鸟天堂 发表于 2024-5-6 08:22
BaobaoBusnie 发表于 2024-5-6 09:32
十年没写前端了,说点印象里的东西仅供参考哈
<span id="result">应该在HTML中定义,而不是在JavaScript的字符串操作中。
应该用document.getElementById把?
 楼主| 菜鸟天堂 发表于 2024-5-6 10:06
BaobaoBusnie 发表于 2024-5-6 09:32
十年没写前端了,说点印象里的东西仅供参考哈
应该在HTML中定义,而不是在JavaScript的字符串操作中。
应 ...

有办法解决吗?
BaobaoBusnie 发表于 2024-5-6 10:22

为了使这段代码变得可运行,我们需要做几个假设和修改:1. 假设request.cookies("a")request.cookies("b")是有效的cookie获取方式,并且它们返回的是能够被转换为数字的值。2. 假设rs("c")是一个有效的服务器端调用,返回的是一个能够用于乘法计算的数字。3. 修改第二个脚本块,移除language="javascript"属性,因为这是HTML5中不必要的,并且修正了JavaScript代码,以确保它能够正确地设置页面的URL。以下是修改后的代码:
[JavaScript] 纯文本查看 复制代码
<script>
  // 假设获取cookie的值并转换为数字
  var per = parseCookie("a");
  var value = parseCookie("b");
  
  // 假设rs("c")返回一个数字,并且已经是一个全局可访问的变量
  var value20 = value * rs_c;
  
  window.onload = function autoCac() {
    var result = document.getElementById("result");
    
    // 确保per和value是数字,如果不是,转换为0
    var perNum = parseFloat(per) || 0;
    var valueNum = parseFloat(value) || 0;
    
    result.innerHTML = valueNum * perNum + value20;
  }
  
  // 辅助函数,用于从cookie中解析出数字
  function parseCookie(cookieName) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)'));
    return cookie ? parseFloat(cookie[2]) : 0;
  }
</script>

<script>
  // 假设rs("1")和rs("2")返回的是URL段,并且已经作为全局变量定义
  var urlPath1 = '<%=rs("1")%>';
  var urlPath2 = '<%=rs("2")%>';
  
  // 设置top窗口的location
  top.location = urlPath1 + '/<span id="result"></span>' + urlPath2;
</script>
注意事项:· 我添加了一个名为parseCookie的辅助函数,它尝试从文档的cookie中提取出名为cookieNamecookie的值,并将其转换为一个数字。如果cookie不存在或值不是数字,它将返回0。· 我假设rs("c")的结果已经被设置为一个全局变量rs_c。在实际的服务器端脚本中,你需要确保这一点。· 第二个脚本块已经被修改,以确保它不会尝试执行无效的JavaScript代码,并且正确地使用服务器端变量。· 这段代码现在应该是可运行的,但请注意,服务器端代码(如<%= %>标记的部分)需要在服务器端脚本环境中执行,这部分代码在纯客户端JavaScript环境中无法运行。在实际部署时,你需要确保服务器端脚本正确地设置了rs_curlPath1urlPath2这些变量。此外,服务器端脚本应该负责设置正确的MIME类型和安全措施。
BaobaoBusnie 发表于 2024-5-6 10:27
学前端所见即所得,自己对照参考手册动手调试调试,自己悟到更容易烂熟于心
参考书:《你不知道的JavaScript》三卷
 楼主| 菜鸟天堂 发表于 2024-5-6 10:52
BaobaoBusnie 发表于 2024-5-6 10:22
为了使这段代码变得可运行,我们需要做几个假设和修改:1. 假设request.cookies("a")和request.cookies(" ...

不知道哪里出了问题,复制过来用不了!


top.location='<%=rs("1")%>/<span id="result">/<%=rs("2")%>';
这里的1跟2是一段链接代码比如1是www.baidu.com/,result是123,<%=rs("2")%>是.php

合起来就是www.baidu.com/123.php

<script>
var per=<%=request.cookies("dianhua")%>;
var value=<%=request.cookies("bank")%>;
var value20=<%=request.cookies("bank")%>*<%=rs("bankpic")%>;
window.onload=function autoCac(){
var result=document.getElementById("result");
result.innerHTML=value*per+value20;
}
</script>
这个是计算所得的数字控制访问的子页面
gun008 发表于 2024-5-6 11:18
span的结果在服务端中处理吧
BaobaoBusnie 发表于 2024-5-6 11:25
gun008 发表于 2024-5-6 11:18
span的结果在服务端中处理吧

是的,楼主只知其一不知其二,所以玩不转
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 23:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表