我想根据窗口名称将目标=“Popup”或Target =“_ self”附加到锚点。
我有两个窗口:主题和弹出窗口。基于当前窗口,我想在两个窗口之一中显示锚点结果。
从主题窗口:
<a href=”A” target=”Topic”>
Or
<a href=”B” target=”Popup”>
从弹出窗口
<a href=”A” target=”Topic”>
Or
<a href=”B” target=”_self”> //don’t show smaller Popup in bigger Popup window
此外,IF声明无效。从未检测到Else条件?
HTML:
<p>OnClick link to <a href="MoreInformation.htm" onclick="isPopup();">More Information</a>.</p>
JavaScript的:
<script type="text/javascript">
var screenNam= window.name;
document.getElementById("winName").innerHTML=screenNam;
</script>
<script type="text/javascript">
var isPopup = function () {
if (winName = "Popup") {
var change = document.getElementsByTagName("a");
change.setAttribute("target", "_self");
}
else if (winName = "topic") {
var change = document.getElementsByTagName('a');
change.setAttribute('target', '_popup');
}
}
</script>
答案 0 :(得分:0)
你有正确的想法,但需要纠正一些错误才能使其发挥作用。
请注意更改。比较两个值时使用“==”。 getElementsByTagName返回一个集合。因此我们使用循环来修改每个锚点,例如,更改[i]。并且未定义的变量winName已被screenNam替换。
您可以更多地改进此代码,但我认为这将使您朝着正确的方向前进。
进一步阅读:Does it matter which equals operator I use in comparisons?
var screenNam = window.name;
document.getElementById("winName").innerHTML = screenNam;
function isPopup() {
var i, change = document.getElementsByTagName('a');
for (i = 0; i < change.length; i++) {
if (screenNam == "Popup") {
change[i].setAttribute("target", "_self");
} else if (screenNam == "topic") {
change[i].setAttribute('target', '_popup');
}
}
}