Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript设置html页面的标题_Javascript_Html_Css_Web_Frontend - Fatal编程技术网

使用javascript设置html页面的标题

使用javascript设置html页面的标题,javascript,html,css,web,frontend,Javascript,Html,Css,Web,Frontend,页面的标题由外部javascript设置。我找不到做这件事的确切函数。因此,我编写了一个函数并将其放入html文件中。但它仍然显示了上一个javascript函数的标题 <script type="text/javascript"> $(document).ready(function() { document.title = 'Pry'; }); </script> $(文档).ready(函数(){ document.title='Pry'; });

页面的标题由外部javascript设置。我找不到做这件事的确切函数。因此,我编写了一个函数并将其放入html文件中。但它仍然显示了上一个javascript函数的标题

<script type="text/javascript">

$(document).ready(function() {
    document.title = 'Pry';
});

 </script>

$(文档).ready(函数(){
document.title='Pry';
});

您也可以尝试定期更改标题。因为你不知道脚本什么时候会改变标题

setInterval(function() {
   document.title = 'Pry';
}, 1000);
如果脚本更改了一次标题,也可以在标题更改后停止此计时器

var title = 'Pry';
var count = 0;
var timer = setInterval(function() {

    if (document.title !== title)
       count += 1;

    document.title = title;

    // count will be incremented twice
    // once when this function runs for first time
    // when title is actually changed
    if (count >= 2)
        clearInterval(timer);

}, 1000);

您最好编辑实际更改标题的脚本,而不是编写另一个例程来更改标题。

您也可以尝试定期更改标题。因为你不知道脚本什么时候会改变标题

setInterval(function() {
   document.title = 'Pry';
}, 1000);
如果脚本更改了一次标题,也可以在标题更改后停止此计时器

var title = 'Pry';
var count = 0;
var timer = setInterval(function() {

    if (document.title !== title)
       count += 1;

    document.title = title;

    // count will be incremented twice
    // once when this function runs for first time
    // when title is actually changed
    if (count >= 2)
        clearInterval(timer);

}, 1000);

最好是编辑实际更改标题的脚本,而不是编写另一个例程来更改标题。

如果可能的话,您最好在用例中倾听更改

setInterval(function() {
   document.title = 'Pry';
}, 1000);
$(document).ready(function () {
  $("title", "head").change(function () {
      console.log("Title has changed");
      changeTitle();
  });

  //Trigger Change
  function changeTitle() {
      $("title", "head").text("New Title");
  }

  $("title","head").text("test Title").trigger('change'); // triggered elsewhere
});

如果可能的话,您最好倾听用例中的变化

$(document).ready(function () {
  $("title", "head").change(function () {
      console.log("Title has changed");
      changeTitle();
  });

  //Trigger Change
  function changeTitle() {
      $("title", "head").text("New Title");
  }

  $("title","head").text("test Title").trigger('change'); // triggered elsewhere
});

Object.defineProperty(document,'title',{set:function(){throw new Error();}}})
应该在其他代码试图设置时抛出一个错误来告诉您它被设置在哪里。您也可以尝试一个MutationObserver
Object.defineProperty(document,'title',{set:function(){throw new Error();})
应该在其他代码尝试设置时抛出一个错误,告诉您它在哪里被其他代码设置。您也可以尝试一个MutationObserver,但您认为它不起作用。您将标题设置为“Pry”,然后检查
document.title===title
是否已更改?它一点也没有改变,过去是,现在仍然是“窥探”。我找不到改变它的脚本。javascript太长了。@skobaljic我已经修改过了。希望这样能更好地检测出标题是否真的被更改了。不要认为它会起作用。您将标题设置为“Pry”,然后检查
document.title===title
是否已更改?它一点也没有改变,过去是,现在仍然是“窥探”。我找不到改变它的脚本。javascript太长了。@skobaljic我已经修改过了。希望这样可以更好地检测标题是否已更改。外部脚本不会触发
更改
。噢,crud。没想过这个你知道的。。。离开这里对任何有类似经历的人都很有用。外部脚本不会触发
change
。噢,crud。没想过这个你知道的。。。我想,离开这里对任何有类似经历的人都很有用。