多次使用同一链接的最佳做法是什么?

时间:2015-03-12 15:48:36

标签: javascript php html

我试图合理化一个网站,并且我有很多链接到同一个文档,所以我想创建一个返回此文档的URL的JavaScript。这样,我可以更新文档,只需更改功能中的URL,而不是更改链接的所有内容(它是专业和内部网站,有许多官方文档链接,经常更新,我无法控制,每次我更新链接,我意识到一段时间后,我忘了一些,甚至通过搜索所有的HTML文件。该网站很乱,很多人写的很差,而且那个为什么我要简化)

我的第一个想法是使用<A href="javascript:F_link_pdf()">link</A>,但每个人都说这是一个不好的做法。我仍然不明白为什么,我不想使用onclick,因为它不适用于中间点击,我想让用户决定如何打开文档

另外,我想使用<A href="javascript:F_link_pdf()#page=39">link</A>重定向到特定页面。

除此之外,我到目前为止所尝试的并不像我想要的那样工作,所以我需要一些帮助,无论是想出更好的解决方案,还是要做到这一点!

这是我的js,有不同的版本:

function F_link_PDF() {
    // i was pretty sure this would work
    return "http://www.example.com/presentation.pdf" ;
}
function F_link_PDF_2() {
    document.write("http://www.example.com/presentation.pdf");
}
function F_link_PDF_3() {
    // i don't like this solution, as it doesn't open as user intended to
    location.href = "http://www.example.com/presentation.pdf" ;
}

这个例子是一个pdf文档,但我也可能需要这个用于html,doc,ppt ... 最后,我开始使用js,因为我已经习惯了,但我还可以使用其他语言,php,asp,如果有人说它是更好的选择

提前感谢!

2 个答案:

答案 0 :(得分:2)

hack 方式:继续使用JavaScript,但是如果浏览器没有运行它会遇到潜在的问题。

更好方式:使用mod_rewrite / .htaccess将以前(过期的)请求重定向到资源的新位置。您还可以使用FallbackResource并提供一个.php文件,该文件可以根据条件提供新资源(您现在可以使用PHP来决定Location标头的位置。

最佳方式 1 :将这些文档引用放在某个数据库表中,并使用表的当前值在页面中引用它们。这创建了一个“真实”的地方,并允许您从全局角度更新网站。您也可以在以后提供搜索,标记,显示列表等。

1 并不意味着它是绝对最好的,但它肯定比更新硬编码的参考文献更好。

答案 1 :(得分:1)

像php这样的服务器端编程语言是更好的选择。

以下示例代码有助于:

<?php
$link="http://www.example.com/files/document.pdf";
if ($_GET['PAGE'] == "downloads")
    {
      ?>
      This is a download page where you can download our flyer.
      <?php
      echo "<a href=\"".$link."\">Download PDF</a>";
    }

if ($_GET['PAGE'] == "specials")
    {
      ?>
      This is our store specials page. check them out. a link to the flyer is below.
      <?php
      echo "<a href=\"".$link."\">Download PDF</a>";
    }
?>

代码不是100%完美,因为有些文本需要调整,但它的作用是需要一个参数PAGE并且看到它是&#34;下载&#34;或&#34;特价&#34;如果是,则加载适当的页面并将链接添加到下载文件。如果您同时尝试这两个页面,则下载链接完全相同。

如果将上述php脚本保存为index.php,则可以使用以下命令调用每个页面:

index.php?PAGE=specials   for the specials page
index.php?PAGE=downloads  for the download page

一旦有效,那么你可以添加另一个&#34; if&#34;要创建的另一个页面的部分,但每个部分中最重要的一行是...的最后一行...

echo "<a href=\"".$link."\">Download PDF</a>";

...因为它在剧本中采用了可用的变量。

使用服务器端方法的一个优点是,即使禁用了JavaScript,人们也可以查看该网站。