0

基本上我到目前为止是一个有两个弹出/警报框的页面。第一个要求用户输入他们最喜欢的网站的名称。第二个要求用户输入他们最喜欢的网站的 URL。结果应该显示在主页上的超链接中,作为用户输入的名称,该名称指向他们在单击时输入的 URL。这是我的代码的样子:

<!DOCTYPE HTML>
<html>
    <head>
        <title>Untitled</title>
    </head>
    <body>
        <script type="text/javascript">
            var favoriteSite;
            favoriteSite = prompt ("What is your favorite web site?")
            favoriteSite = prompt ("What is the URL of that site?") 
            document.write('<a href="' + favoriteSite + '"></a>')
        </script>                       
        <h1>Link to favorite site.</h1>
        <h2>This is my favorite web site</h2>  
    </body>
</html>

PS。我是 JavaScript 的初学者,任何帮助将不胜感激。谢谢。

这就是我最终改为:

<html>
    <head>
        <title>Untitled</title>
    </head>
    <body>
        <script type="text/javascript">
            var favoriteSite;
            var favoriteSiteName;
            favoriteSiteName = prompt ("What is your favorite web site?");
            favoriteSite = prompt ("What is the URL of that site?"); 
            document.write("<h1>Link to favorite website.</h1>");
            document.write("<h2>This is my favorite web site" +" " +     favoriteSiteName.link("https://" + favoriteSite + "") + "</p>");
        </script>                       
    </body>
</html>
4

6 回答 6

0

你所拥有的几乎是正确的。

var favoriteSiteName = '',
    favoriteSiteURL = '';

favoriteSiteName = prompt('What is your favorite web site?');
favoriteSiteURL = prompt('What is the URL of that site?');
document.write('<a href="' + favoriteSiteURL + '">' + favoriteSiteName + '</a>');

您缺少用于指示行尾并将站点名称添加到链接的分号。此外,h1andh2元素不属于script元素内部。

JSF 中。

于 2013-09-04T03:03:26.267 回答
0

您需要设置超链接的文本,否则超链接将不可见。

favoriteSiteName = prompt ("What is your favorite web site?")

favoriteSite = prompt ("What is the URL of that site?") 

document.write('<a href="' + favoriteSite + '">'+favoriteSiteName+'</a>')

附带说明一下,您应该避免使用提示或警报。多个这样的对话框会惹恼用户,浏览器会发出警告,UI 自动化测试变得困难。您可以使用 jquery ui 对话框或 div 弹出窗口来获取用户输入并使用 jquery 创建超链接。

于 2013-09-04T03:03:40.617 回答
0

您缺少分号,并且站点和 url 变量也相同。设置超链接的文本,否则超链接将不可见

var favoriteSite;
var favoriteUrl ;

 favoriteSite = prompt ("What is your favorite web site?");

 favoriteUrl = prompt ("What is the URL of that site?"); 

document.write('<a href="' + favoriteSite + '">Site</a>');
document.write('<a href="' + favoriteUrl + '">Url</a>');

</script>     
于 2013-09-04T03:03:41.080 回答
0

远离 document.write !!!

为什么 document.write 被认为是“坏习惯”?

Live Demo

JS

//Get the text you want to display
var text = document.createTextNode(prompt ("What is your favorite web site?")); 

//Create an attribute to for the href
var href = document.createAttribute("href");
href.value = prompt ("What is the URL of that site?") 

//Create a link
var link = document.createElement('a');

//Add the attribute to the link
link.setAttributeNode(href);

//Add the text to the link
link.appendChild(text); 

//Add the link to the page
document.getElementById('link').appendChild(link);  

HTML

<h1>Link to favorite site.</h1>

<h2>This is my favorite web site: <span id='link'></span></h2>  

最后,我会认真考虑使用框架来处理您的 DOM 操作。一个很好的学习方法是jQuery

于 2013-09-04T03:06:24.017 回答
0

是的,document.write 会覆盖所有现有的文档节点.. 你应该尝试等待页面加载,然后再运行脚本.. 试试这个

<!doctype html>

<html>
  <head>
    <script type='text/javascript'>
      window.addEventListener("load",function(){
        var siteName = prompt("what is you fave site name?");
        var siteURL = prompt("what is its URL?");
        var a = document.body.appendChild(document.createElement("a"));
        a.href = siteURL;
        a.innerHTML = siteName;
      });
    </script>
  </head>

  <body>

  </body>
</html>
于 2013-09-04T03:07:01.940 回答
0

您的链接中没有任何内容。尝试这样的事情:

看JS:

http://jsbin.com/enOWeCI/1/edit

在行动中看到:

http://jsbin.com/enOWeCI/1/

于 2013-09-04T03:10:19.117 回答