javascript - 调用javascript函数时的问题
问题描述
我有一个页面,当我从另一个 .html 页面调用 js 函数时,我希望进行某些更改更准确地说,当我按下第 2 页上的按钮时,我希望第 1 页上的图像可见。我怎样才能做到这一点?
img_visibility_cod.js
function showImage(n){
if(n==1)
document.getElementById('im1').style.visibility="visible";
else
if(n==2)
document.getElementById('im2').style.visibility="visible";
}
page2.html
<script type="text/javascript" src="img_visibility_cod.js"></script>
<input class="buton-verif" type="button" value="Finish" onclick="showImage(1)" />
page1.html
<script type="text/javascript" src="img_visibility_cod.js"></script>
<li class="lst"><img id="im1" src="imagini/verif.png"></li>
<li class="lst"><img id="im2" src="imagini/verif.png"></li>
解决方案
页面之间的数据不会保留在 JavaScript 中,当您切换页面时它会重新加载。
但是,您可以做的是使用 localstorage api,它使用起来非常简单:
localstorage.setItem("imageID", 1)
和
let n = localstorage.getItem("imageID")
所以在 showImage 中不用传入 n 作为参数,你可以像上面那样定义它。
另一件事是,当您访问第 1 页时需要运行 showImage,在第 2 页中页面上不会有任何图像,因此您的代码将看不到它们。
您将需要第 2 页的另一个功能来执行第一个片段
编辑:代码示例:
// this is img_visibility_cod.js
function showImage() {
// get n's value from the browser's storage
let n = localstorage.getItem('imageId');
// first time we run, n is not set, so we get undefined and have to set it to something
if (n == undefined)
n = 1
// local storage only saves things as string, have to turn it back into a number
n = Number(n)
if (n == 1)
document.getElementById('im1').style.visibility = "visible";
else
if (n == 2)
document.getElementById('im2').style.visibility = "visible";
}
// to run the function every time page 1 loads you need to invoke the function, alternative have no function at all and just write code directly
showImage()
function switchImage() {
let n = localstorage.getItem('imageId');
n = Number(n)
if (n == 1)
localstorage.setItem('imageId', 2)
else
localstorage.setItem('imageId', 1)
}
<!-- page 1 -->
<script type="text/javascript" src="img_visibility_cod.js"></script>
<li class="lst"><img id="im1" src="imagini/verif.png"></li>
<li class="lst"><img id="im2" src="imagini/verif.png"></li>
<!-- page 2 (the other file) -->
<script type="text/javascript" src="img_visibility_cod.js"></script>
<input class="buton-verif" type="button" value="Finish" onclick="showImage(1)" />
推荐阅读
- c++ - 如何在 Visual Basic 中使用矩形函数 OpenGL 绘制矩形
- css - How to keep a seperate div open from a css selector
- python - How can I omitt certain lines from an Nmap output scan?
- android - 在手机上运行时出错,但在模拟器上运行时出错
- javascript - 如何跨位于多个文件中的多个组件共享 JSS 类?
- sql-server-2014 - 作为系统管理员和 XP_CMDSHELL 执行
- javascript - axios get requests and displaying in table
- r - In R how can I fill downwards for all rows which match one variable and don't match another
- javascript - 如何使用设置 JSON 文件在另一个文件中使用?
- c# - 生成 C++ 线程时,iPhone XS 在 pthread_tsd_cleanup 上崩溃