导航到新的 html 页面并更改该新页面上的 img src

Navigate to a new html page and change an img src on that new page

本文关键字:新页面 img src html 导航      更新时间:2023-09-26

我有一个 html 页面,其中包含多个指向另一个链接的链接,我想根据用户单击的 href 更改登录页面上的图像引用。需要注意的是,该链接来自 iframe 内部,并调用要在登录页面中加载的 iframe src。

//html page B
    // inside an iframe
        <a target="_parent" href="../gfx.html?content/more.html">this page</a>
//html page A
    // buttons outside iframe
    <img id="btn1" src="btn1.png" />
    <img id="btn2" src="btn2.png" />
        // then an iframe below

http://plnkr.co/edit/Mr40BpnbF8aYkhMtq5qf 更新了 Plinkr 代码以显示新代码,这要归功于 icke 的链接。

var cdirec = getParameterByName('check');
if (cdirec) {
    document.getElementById("bt1").src = "img/bt1.png";
    document.getElementById("bt4").src = "img/bt4-2.png";
}

不能作为布尔触发器正常工作 - 有人知道为什么吗?

我认为不可能

在 B 页上使用 JS 来更改 A 页上的某些内容。 (除非,正如 Cristy 在对您的问题的评论中指出的那样,涉及其他组件)

假设您可以编辑两个页面的源代码,一个想法是在页面 B 的链接中使用查询字符串:

<a href="pageA.html?button=btn1"> click</a>
<a href="pageA.html?button=btn2"> press</a>

然后在 A 页上使用 JS 设置 src 属性:

function getParameterByName(name) {
    name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
    var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/'+/g, " "));
}
[...]
document.getElementById('bt1').src=getParameterByName('button')+'.png';

getParameterByName函数不是我的,而是取自这里:https://stackoverflow.com/a/901144/1389366