SO上有这个问题的多个版本,但他们都没有真正理解我想要做的事情。当启用JavaScript时,浏览器将noscript
元素的内容视为未分离的文本。我使用该元素来提供我网站的所有内容,但对于那些拥有JavaScript的用户,我使用AJAX加载内容。将字符串解析为非XML HTML5而不加载后裔元素
...但后来我想,为什么当所有的内容都在noscript
的附加请求与AJAX?我会尝试从noscript
元素中的字符串中取出我需要的部分。起初,我尝试这样做:
do_stuff_with($($("noscript").text()))
但我很快发现,该方法立即导致浏览器做出分析的字符串中的所有替换元素(图像等)的请求。 (我假设jQuery将它添加到DOM以解析它。)然后我浏览了$ .parseXML(),但很快让这个想法变成了因为标记不是XML(它是非XML格式的HTML5)。
有没有一些方法可以让樱桃从字符串中挑选元素而不做不必要的HTTP请求?
我喜欢这种方法几乎和我喜欢的奶酪一样。那这个呢? 'raw.replace(/ src = ['“]/g,”data-deferred- $ &");',这个(如果我写的是正确的)会把'img'作为'img',但是替换它的'src'属性与'data-deferred-src'具有相同的值。思考? – kojiro
我说,如果它有效,请继续做下去:)。在Chrome中,您可以打开Network选项卡上的调试器,并使用类似http://jsfiddle.net/ACECK/的内容来确保它不会加载任何图像。 –
我在这里提出了另一个答案,因为它会做我想要的更有效,但我认为这是我问的问题的最佳答案。 – kojiro