Javascript" value = ..."返回空白页面

时间:2016-09-04 20:27:51

标签: javascript html google-chrome internet-explorer browser

按照以下步骤操作。

第1步:

  1. 转到google
  2. 打开javascript控制台。
  3. 输入命令:document.all.q.value = "hello"
  4. 正如预期的那样,名称为" q" (搜索字段)设置为" hello")。 See image

    第2步:

    1. 转到google
    2. 在地址栏中输入javascript: document.all.q.value = "hello!"
    3. 按Enter键
    4. 如果您的浏览器是Internet Explorer或Google Chrome,则javascript将用完全空白的页面替换Google网站,但“#34; Hello"”这个词除外。

      Lazy? Here's an image.

      最后

      现在您已经删除了浏览器,请返回Google.com并重复步骤1 。您应该收到错误消息"未捕获的ReferenceError:文档未定义(...)VM83:1 See image

      问题:

      我做错了吗?还有另一种方法可以使用,同时仍然使用JS输入的地址栏吗?

2 个答案:

答案 0 :(得分:1)

javascript:方案网址的目的是使用JavaScript生成新网页。使用它修改现有页面是一种破解。

document.all.q.value = "hello!";评估为"hello!",因此当您访问该网址时,会生成并加载一个仅由文本hello!组成的新HTML文档,而不是现有页面。

要避免这种情况:确保JS不返回字符串。您可以使用void

执行此操作
javascript:void(document.all.q.value = "hello!");

答案 1 :(得分:-1)

当在地址栏中弄乱javascript:时,某些(如果不是最多)浏览器会将其作为新页面处理,因此您必须在最后添加window.history.back();

javascript: document.all.q.value = "hello!"; window.history.back();