【问题标题】:target="_self" mysteriously changed into "_blank" on its owntarget="_self" 自己神秘地变成了"_blank"
【发布时间】:2012-06-05 02:37:04
【问题描述】:

我正在使用 php 制作一些网页,但我在尝试制作链接时遇到了一些困难。

基本上,我将我的<a> 设置为 target="_self",以便它保持在同一页面上。 (注意页面是一个新窗口,我也尝试使用“_top”和“_parent”)

<a href="http://ordi-003/inclusion/fiche.dos.assorti.info.php?id=<?php echo $donnees[0]['NoIdentDosAssorti'] ?>&lan=<?php echo $_SESSION['lan'] ?>" target="_self"><img src="<?php echo $donnees[0]['id2_pathImgMini'] ?>" width="75" height="75" /></a>

这是 php 形式的链接。

<a href="http://ordi-003/inclusion/fiche.dos.assorti.info.php?id=14&lan=fr" target="_self"><img src="../images/propriete/DosAssorti/mini/L482_mini.jpg" width="75" height="75" /></a>

这是显示源代码时向浏览器编码的结果。(跨 IE、Firefox、Chrome)

<a target="_blank" href="http://ordi-003/inclusion/fiche.dos.assorti.info.php?id=14&lan=fr">

根据 Firebug 和 Chrome 开发工具,这是同一行。

单击链接时,预期结果是在同一页面上打开链接,但它会在新窗口中打开它。将 firebug 内部的“_blank”更改为“_self”,然后单击链接会产生良好的效果并在同一页面上打开链接。

我做错了吗?我在这里错误地使用了&lt;a&gt; 吗?

我应该寻找另一种方法来建立我的链接吗?我对任何事情都很开放,我尝试了不同的事情,在谷歌上看了很多,但找不到有同样问题的人。 Firefox 缓存已停用,所以这不应该是问题。在另一台电脑上也试过,结果是一样的。

如果我提供的信息太短,请告诉我还应该包括什么,因为我是堆栈溢出的新手。

编辑:我忘了说,如果我删除目标参数并且不添加任何内容,“源代码页”不会显示任何应有的内容,但在 firefug 和 chrome 开发工具中它会显示 target="_blank"仍然。另外请注意,此文件只有 1 个副本,它位于运行本地站点的机器的本地主机上。我正在直接编辑该文件。

Edit2:http://pastebin.com/yrAMQEL9 请注意,出于某种原因,pastebin 上的缩进很糟糕。

【问题讨论】:

  • 如果您希望链接在同一个窗口中加载,为什么还要使用target?但是,您的错误听起来像是某些东西(可能是服务器端脚本?)正在修改您的 HTML,或者服务器上某处缓存了旧版本(或两台机器都在使用的代理)发送给您。
  • 我感觉你在看两个完全不同的链接...
  • 你能发个链接吗?例如示例网页,jsFiddle...
  • @ThiefMaster 好吧,我知道目标默认是 _self 但由于它是在新窗口中打开的,所以我试图强制它。服务器上禁用了 Firefox 缓存,我不知道其他缓存可能会导致这种情况。不涉及代理。
  • @stevether 这是唯一链接到那个 .php 的链接,所以不可能是那个 =/

标签: php html hyperlink


【解决方案1】:

我终于找到了导致我的_self被替换的原因。

在页脚中有一个脚本被引用并通过进一步研究我发现了这段代码

jQuery('a[href^=http]:not(.in)').attr({
    'target' : '_blank'
});

它导致将 _self 替换为 _blank。

现在我知道问题出在哪里,我只需要与该函数的原始编码人员核实他为什么需要它以及是否仍然需要它。

感谢大家的帮助。

【讨论】:

    【解决方案2】:

    您运行的代码与您正在编辑的代码不同。确保您所做的更改正在浏览器中访问您正在访问的服务器,并且您正在编辑正确的文件。

    【讨论】:

    • 服务器实际上是我的老板计算机运行 wamp 我直接在那台计算机上编辑文件,我正在编辑好文件。 (我检查了三次)是的,更改正在保存,我也看过。我检查的另一台计算机是否执行相同的操作是文件所在的位置。第一行代码是我理解的 .php 中的代码。但是第 2 行和第 3 行之间的差异是不正常的。该页面的源代码告诉我它是 _self 但 Firebug 同时告诉我它是 _blank。这就是我很困惑的地方。
    • 我看到其他人报告说 Firebug 给了他们奇怪的东西。别看那个。查看查看源代码。您的代码中没有任何内容会交换 target 和 href 属性的位置。
    • 在这种情况下,我是否应该不信任 chrome 开发工具,因为它给出了相同的结果?查看源代码页面为我提供了良好的输出,但页面的行为不像它。而且该文件只有一个副本,因此除了运行之外,我无法编辑另一个文件。
    • 我知道这很令人沮丧。我去过那儿。但是您发布的代码绝对不可能创建您发布的输出。它根本没有。继续检查以确保您正在编辑正确的文件。您可以在某处插入一些乱码,并确保它显示在浏览器中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多