XHTML中的所有有效自闭元素(例如<br/>)是什么(由主要浏览器实现)?
我知道XHTML在技术上允许任何元素自我关闭,但我正在寻找所有主要浏览器支持的那些元素的列表.有关由自关闭元素(如<div />)引起的某些问题的示例,请参见http://dusan.fora.si/blog/self-closing-tags.
我想知道是否有任何可用资源描述浏览器的光标如何执行Javascript.
我知道它会在页面加载时加载并执行标记,并且您可以将函数附加到各种窗口事件,但事情变得模糊的是,例如,我通过AJAX检索远程页面并将其内容放入div中.
如果该远程页面必须加载脚本库,例如<script src="anotherscript.js" />何时加载"anotherscript.js"并且其内容正在执行?
如果我在当前页面上包含"anotherscript.js",然后我加载了一些包含此脚本的重复内容的远程内容,会发生什么?它会覆盖原来的吗?如果原始的"anotherscript.js"中有一个var,其值已更改,然后我重新加载该文件...我会丢失原始值还是忽略了第二次包含此脚本?
如果我通过AJAX加载一些程序性的Javascript,它什么时候执行?我做完之后马上mydiv.innerHTML(remoteContent)?还是在此之前执行?
我在我的网站上有这个代码
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"/>
<script type='text/javascript' src='/lib/player/swfobject.js'></script>
Run Code Online (Sandbox Code Playgroud)
swfobject没有工作(没有加载).
将代码更改为:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type='text/javascript' src='/lib/player/swfobject.js'></script>
Run Code Online (Sandbox Code Playgroud)
它工作正常.
该文档被解析为HTML5.
我觉得这很有趣.好的,授予一个已关闭的标签和一个自动关闭的标签不一样.所以我会理解jQuery是否无法加载(虽然我觉得它很荒谬).
但我不明白的是,jQuery加载,但以下,正确编写的标签,不?
我注意到jQuery(或者它是Firefox)会转变我的一些 <span class="presentational"></span> into <span class="presentational" />
现在我的问题是,写这样的标记是否可以?任何浏览器都会窒息吗?
就我个人而言,<span class="presentational" />如果它是空的,我觉得它看起来更干净.
我想在网站的每个页面上都包含一个javascript文件.我可以这样做:
<script type="text/javascript" src="myFile.js" ></script>
Run Code Online (Sandbox Code Playgroud)
这很好 - 但由于两个标签之间没有任何内容,我想将其更改为:
<script type="text/javascript" src="myFile.js" />
Run Code Online (Sandbox Code Playgroud)
如果我这样做,它就不起作用 - 在该页面上加载该行之后没有任何内容.
有什么想法吗?谢谢
我只是好奇为什么我的JavaScript无法运行(在Firefox和IE中测试)如果我写这样的<script>标签:
<script type="text/javascript" src="script.js"/>
Run Code Online (Sandbox Code Playgroud)
如果我将该行更改为:
<script type="text/javascript" src="script.js"></script>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:为什么我无法关闭script开始标记中的标记,因为我内部没有任何内容.
我的JavaScript代码很简单,只需:
alert("test");
Run Code Online (Sandbox Code Playgroud)
注意:我检查firefox错误控制台,没有错误.
我读到自闭项标签在某些浏览器中存在问题,例如IE7和Firefox 3:为什么自动关闭脚本标签不起作用?
我很好奇这个问题是否也适用于链接样式表.
例如使用
<link href="/css/style.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
代替
<link href="/css/style.css" rel="stylesheet" type="text/css"></link>
Run Code Online (Sandbox Code Playgroud) 根据http://www.w3.org/TR/html401/interact/forms.html#h-17.4,输入元素应以单个结尾>而不是结尾/>.虽然大多数浏览器都可以处理以...结尾的输入元素,但/>这样的输入元素是否符合HTML语法规则?换句话说是相同的元件<input ... />和<br />有效的HTML 4?
(这个问题是关于HTML而不是XHTML !!!)
也许这类似于这个问题,没有回应: loadHTMLString不能使用iOS5?
我有一个UIWebView,我使用loadHTMLString填充:baseURL:.HTML小而简单,它引用了一个css样式表和一个javascript脚本,它们通过baseURL:加载,它被设置为app的bundle内的一个目录.
// load the html
NSString* filePath = [NSString stringWithFormat: @"%@/html", [[NSBundle mainBundle] resourcePath ] ];
[_pCurrentWebView loadHTMLString: html baseURL: [NSURL fileURLWithPath: filePath isDirectory: YES ] ];
Run Code Online (Sandbox Code Playgroud)
这在过去一直很有效,但在iOS5中已经破产了.在iOS5中,UIWebView中不显示任何内容.webview确实提供了所有预期的事件 - 例如,shouldLoadRequest,didStartLoad,didFinishLoad等.
html有一个脚本标记,如下所示:
<script type="text/javascript" src="./myscript.js" />
Run Code Online (Sandbox Code Playgroud)
如果我删除脚本标记,那么页面加载并在iOS5中呈现正常.我可以说,加载并应用了与脚本.js文件引用方式相同的css文件.
如果我保留脚本标记但使myscript.js文件完全为空,则仍然无法加载.
对我来说,这似乎是某种跨站点脚本问题 - 因为WebView认为它应该禁止加载脚本(事实上,不允许渲染页面?)
不知道从哪里开始.想法?
UPDATE
这种感觉越来越像跨站点脚本问题.如果我删除它的标签,虽然没有脚本.我的所有图像都是从baseURL加载的,我的样式表也是如此.也就是说,我们知道baseURL正在运行.
如果我用我的脚本文件的实际内容替换标签然后它工作,所以问题不是脚本本身.
仍在寻找确认和其他想法来规避.我不方便将脚本本身修补到html中,但这是我迄今为止最好的解决方案.或者,我可以将html写入文件系统并通过loadRequest加载,但同样,不是我的第一选择.
更新2
感谢@djromero我有一个解决方案.我的文档是一个XHTML文档,因此使用了一个自动关闭的脚本标记(没有内容,只是属性.)但loadHTMLString:baseURL:显然假设一个MIMEType text/html,UIWebView显然现在更严格地解释 - 并且在text/html文档中你可能没有自我关闭标记.
我的解决方案是切换到loadData:MIMEtype:baseURL:并指定application/xhtml+xml为mime类型.我可以使用我的NSString轻松构造NSData dataUsingEncoding:.
可能重复:
为什么自动关闭脚本标签不起作用?
我刚刚用HTML中的脚本标记找到了一个令人厌烦的行为.
我的网络服务器是nginx,我使用了FAST CGI和PHP5.我有一个page.html,看起来像这样:
<html>
<body>
<!-- <?php echo 'i am going to add php code here'; ?> -->
<script type="text/javascript" src="./my/javascript1.js" />
<script type="text/javascript" src="./my/javascript2.js" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果直接从Web服务器提供此页面,则java脚本运行良好.但如果它传递给PHP5,似乎只执行第一个java脚本标记.但是,如果我将脚本块更改为:
<script type="text/javascript" src="./my/javascript1.js"></script>
<script type="text/javascript" src="./my/javascript2.js"></script>
Run Code Online (Sandbox Code Playgroud)
一切都有效.注意到标签是如何关闭的?是的,这就是我在这里问的原因.有什么不同?他们应该具有相同的功能/意义.此外,我的网页浏览器(Chrome/IE9)收到的输出HTML是相同的,但为什么区别对待?