我的编程技巧充其量只是基本的,所以如果我听起来有点笨拙讨论这些事情,请原谅我。我正在学习,但是以黑猩猩的速度学习。
这是我的问题:我正在使用JQuery Mobile通过ajax将一些表单内容作为对话框引入。此内容包含在文档本身中,在第二个div中包含data-role =“page”属性。
在第二页div中,我有一些定义了几个vars的javascript,然后用document.write()将它们写入doc。
然而,当我点击链接(导航中的最右边的链接)时,Firefox不是弹出一个不错的对话框,而是短暂地加载一个带有第一个var的新页面(不是动态的,而是作为静态页面),然后重定向回起始页面,在浏览器历史记录中留下“wyciwyg(00000)...”。根据所述重定向,“WYCIWYG”将显示在浏览器的标题栏中。其他浏览器以略微不同的方式窒息(Safari不重定向,Chrome显示所有变量并且不重定向等),但WYCIWYG在历史中的因素在所有三个中都有效。如果删除document.write命令,则链接将按预期运行。
我已经在网上搜了好几个小时而没有找到答案......类似的问题出现在10年前的Mozilla错误报告中,但并不多。我发现的唯一解决方案是不在通过ajax加载的内容中使用document.write()。不幸的是,我不知道替代方案是什么,或者我将如何开始执行它。 Javascript代码源自Google - 转机计划程序的前端代码。
下面是一些说明问题的精简代码。考虑到整个黑猩猩的节奏,任何指导都会非常感激。提前谢谢。
<!DOCTYPE HTML>
<html>
<head>
<title>WYCIWYG</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile.structure-1.2.1.min.css" />
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css">
<script type='text/javascript' src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js"></script>
<script>
var startExample = "USC";
var endExample = "201 N Los Angeles St.";
var zip = "90012";
</script>
</head>
<body>
<div data-role="page">
<div data-role="navbar">
<ul data-mini="true">
<li><a href="#mNavDash" data-prefetch="true" id="dashLink">Service 1</a></li>
<li><a href="#mNavCE" data-prefetch="true" id="ceLink">Service 2</a></li>
<li><a href="#planTrip" id="planTripLink" data-rel="dialog">PLAN TRIP</a></li>
</ul>
</div>
</div>
<div data-role="page" id="planTrip">
Some document.write js:
<script>
document.write(startExample);
document.write(endExample);
document.write(zip);
</script>
</div>
</body>
答案 0 :(得分:0)
您可以在占位符元素上使用jQuery.html()
:
来源:http://jsfiddle.net/fiddlegrimbo/suD6s/6/
演示:http://fiddle.jshell.net/fiddlegrimbo/suD6s/6/show/light/
<div data-role="page" id="planTrip">
Some document.write js:
<p id="start"></p>
<p id="end"></p>
<p id="zip"></p>
<script>
$("#planTrip #start").html(startExample);
$("#planTrip #end").html(endExample);
$("#planTrip #zip").html(zip);
</script>
</div>