如何根据窗口名称切换锚定目标

时间:2016-02-18 23:28:26

标签: javascript anchor target setattribute

我想根据窗口名称将目标=“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>

1 个答案:

答案 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');
      }
    }

  }