JsFiddle:库 "Load Type" 是指库还是我的代码?
JsFiddle: Is the Library "Load Type" referring to the library or my code?
这看起来很明显,但我不太确定,documentation is ambiguous。
我正在使用 jsFiddle(特别是这个,https://jsfiddle.net/suterma/dmqr5fe2/7/ 但问题更笼统)
$("textarea, input").bind("paste", function(e){
//...
});
我将 jQuery 与它一起使用,它在功能上有所不同,无论我将 jQuery 库的加载类型设置为 "on Load" 还是 "bottom of head"。
现在,这个加载类型实际上指的是jQuery库的加载方式还是我的代码片段的加载方式?
我尝试使用开发人员模式深入查看结果窗格,但是非常复杂,我还没弄明白。
您可以通过检查内部 iframe 或记录文档的 innerHTML
来检查它。例如,将此添加到您的代码中:
console.log(document.documentElement.innerHTML);
你得到
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- LOOK HERE: ----------------------------------------------------------------->
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.3.js"></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<style id="compiled-css" type="text/css">
textarea{
display:block;
width: 100%;
height: 200px;
}
input{
display:block;
width: 100%;
}
</style>
<!-- TODO: Missing CoffeeScript 2 -->
<script type="text/javascript">//<![CDATA[
// LOOK HERE: ---------------------------------------------------------------------
$(window).load(function(){
console.log(document.documentElement.innerHTML);
$("textarea, input").bind("paste", function(e){
e.stopPropagation();
e.preventDefault();
var cd = e.originalEvent.clipboardData;
var text = cd.getData("text/plain");
$(this).val(text.trim());
});
});
//]]></script>
</head>
<body>
<textarea id="pastezone" placeholder="Copy someting with leading and trailing spaces here, then it gets trimmed!"></textarea>
<input id="pastebox" placeholder="Copy someting with leading and trailing spaces here, then it gets trimmed!">
<script>
// tell the embed parent frame the height of the content
if (window.parent && window.parent.parent){
window.parent.parent.postMessage(["resultsFrame", {
height: document.body.getBoundingClientRect().height,
slug: ""
}], "*")
}
// always overwrite window.name, in case users try to set it manually
window.name = "result"
</script>
</body>
如您所见,库 (jQuery) 正在立即 加载到头部的 <script>
标记中。相反,您的代码放在 $(window).load(function(){
回调中。
请注意,运行 您的代码在文档运行时的方法取决于所使用的库。例如,如果您取消选择 jQuery 并使用 D3.js(或任何其他库),您的代码将被放入 window.onload = function() {
回调中。
这看起来很明显,但我不太确定,documentation is ambiguous。
我正在使用 jsFiddle(特别是这个,https://jsfiddle.net/suterma/dmqr5fe2/7/ 但问题更笼统)
$("textarea, input").bind("paste", function(e){
//...
});
我将 jQuery 与它一起使用,它在功能上有所不同,无论我将 jQuery 库的加载类型设置为 "on Load" 还是 "bottom of head"。
现在,这个加载类型实际上指的是jQuery库的加载方式还是我的代码片段的加载方式?
我尝试使用开发人员模式深入查看结果窗格,但是非常复杂,我还没弄明白。
您可以通过检查内部 iframe 或记录文档的 innerHTML
来检查它。例如,将此添加到您的代码中:
console.log(document.documentElement.innerHTML);
你得到
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- LOOK HERE: ----------------------------------------------------------------->
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.3.js"></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<style id="compiled-css" type="text/css">
textarea{
display:block;
width: 100%;
height: 200px;
}
input{
display:block;
width: 100%;
}
</style>
<!-- TODO: Missing CoffeeScript 2 -->
<script type="text/javascript">//<![CDATA[
// LOOK HERE: ---------------------------------------------------------------------
$(window).load(function(){
console.log(document.documentElement.innerHTML);
$("textarea, input").bind("paste", function(e){
e.stopPropagation();
e.preventDefault();
var cd = e.originalEvent.clipboardData;
var text = cd.getData("text/plain");
$(this).val(text.trim());
});
});
//]]></script>
</head>
<body>
<textarea id="pastezone" placeholder="Copy someting with leading and trailing spaces here, then it gets trimmed!"></textarea>
<input id="pastebox" placeholder="Copy someting with leading and trailing spaces here, then it gets trimmed!">
<script>
// tell the embed parent frame the height of the content
if (window.parent && window.parent.parent){
window.parent.parent.postMessage(["resultsFrame", {
height: document.body.getBoundingClientRect().height,
slug: ""
}], "*")
}
// always overwrite window.name, in case users try to set it manually
window.name = "result"
</script>
</body>
如您所见,库 (jQuery) 正在立即 加载到头部的 <script>
标记中。相反,您的代码放在 $(window).load(function(){
回调中。
请注意,运行 您的代码在文档运行时的方法取决于所使用的库。例如,如果您取消选择 jQuery 并使用 D3.js(或任何其他库),您的代码将被放入 window.onload = function() {
回调中。