2010-01-29 71 views
1

工作我有一个jQuery代码

$(window).load(function() { 
    document.title = $("#myid").text(); //not working in FF 
}); 

在这里,我已经使用$(窗口).load(函数(),因为在#。 myid我通过另一个javascript获得价值,如果我使用ready(),它给我错误,所以我第一次加载窗口,然后开始读取值 现在在IE中,窗口加载后,我得到document.title时, 但对于FF的未来作为blank.undefined。 为什么呢?任何想法或替代SLN。

回答

1

这可能是一个渲染/计时问题。 你是如何设置#myid文本的?我假设你正在页面加载运行此代码? Personaly在另一个说明中,我喜欢使用jQuery DOM准备的简写版本,这也可能解决您的问题。

jQuery(function(){ 
    document.title = jQuery("#myid").text(); 
}); 

而且我会确保您在身体的末端或理想的头标记中调用它。

+0

如果u使用jQuery(函数(){,U将无法得到 的jQuery(“#身份识别码”)的文本值();该值从另一个JavaScript的到来,所以,如果我调用$(window).load(function(){,它将等待直到窗口加载,然后#myid将被填充,然后我将能够检索document.title = jQuery(“#myid”)。text() ; – Wondering 2010-01-29 12:03:02

+0

我认为你需要让你的问题更清楚一些,正如我刚才说的DOM完成了一样,你正在讨论通过另一个资源进入的东西,如果它是通过另一个javascript文件传入的,你应该使用jQuery.getScript( )函数,然后使用回调函数来设置文档标题。 – 2010-01-29 15:06:38

0

我认为这是可能的,当它快速加载(本地主机,小实验页面与一个DIV等)

为什么不把标题设置就绪功能的Firefox触发在同一时间准备和负载得到它后立即?如果你把它放在一个div中,你也可以把它放在标题中。

0

我没有检查这个代码,它不是一个好的方法,但它可能会帮助你... 如果你的代码只在Firefox中工作,你可以通过Javascript检查浏览器并执行我的代码仅适用于Firefox。

<script type="text/javascript"> 
var timerId = 0; 

function checkElement() { 
    // If don't work: try .html() or $("#myid").text() != undefined or smth like this 
    if($("#myid").text()) { 
    document.title = $("#myid").text(); 
    clearInterval(timerId); 
    } 
} 

$(document).ready(function() { 
    timerId = setInterval('checkElement()', 500); 
}); 
</script>