是否有更简单的(本机可能?)方式在Google Chrome浏览器中包含外部脚本文件?
目前我这样做:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
Run Code Online (Sandbox Code Playgroud) 如何可靠地动态加载JavaScript文件?这将用于实现一个模块或组件,当'初始化'时,组件将根据需要动态加载所有需要的JavaScript库脚本.
使用该组件的客户端不需要加载<script>
实现此组件的所有库脚本文件(并手动将标记插入其网页) - 只需要"主"组件脚本文件.
主流JavaScript库如何实现这一目标(Prototype,jQuery等)? 这些工具是否将多个JavaScript文件合并为一个可再发行的"构建"版本的脚本文件?或者他们是否动态加载辅助"库"脚本?
这个问题的补充:有没有办法在加载动态包含的JavaScript文件后处理事件? 原型document.observe
适用于文档范围的事件.例:
document.observe("dom:loaded", function() {
// initially hide all containers for tab content
$$('div.tabcontent').invoke('hide');
});
Run Code Online (Sandbox Code Playgroud)
脚本元素有哪些可用事件?
几年前我做了一些javascript/jQuery编程,我刚开始了.当时美元符号用于所有jQuery功能,如果没有导入jQuery库,则未定义美元符号.
今天,我启动了Firefox,在一个没有javascript库的完全空的html文件中,但是美元符号指向某个东西.如果我打开Firefox控制台并键入'$',我会得到"function()"
.
1)几年前没有分配美元符号,或者我记得错了,这是正确的吗?
2)如果不是jQuery ,美元符号是什么?
我使用以下命令将jQuery库附加到dom:
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
Run Code Online (Sandbox Code Playgroud)
但是,当我跑:
jQuery(document).ready(function(){...
Run Code Online (Sandbox Code Playgroud)
控制台报告错误:
Uncaught ReferenceError: jQuery is not defined
Run Code Online (Sandbox Code Playgroud)
如何动态加载jQuery以及在dom中使用它?
我正在尝试从chrome JavaScript控制台更改复选框值.我知道更改会打印到对象而不是屏幕上.我想执行一个jQuery语句,即:
('input[name=foo]').attr('checked', true);
Run Code Online (Sandbox Code Playgroud)
有没有办法输入jQuery语句,并在页面中立即看到更改?
我已经做了一些阅读和搜索,几乎我发现的一切都指出脚本标签不能包含在Angular 2的模板中.
我们正在故意从模板中删除标签,因为您不应该使用它们按需加载代码. https://github.com/angular/angular/issues/4903 [2015]
但是 - 有一个功能bypassSecurityTrustScript
我想知道bypassSecurityTrustScript
Angular 2的使用时间和方式是什么意思?
我知道有一个类似的问题被问到:
Angular2动态插入脚本标签 - 虽然没有人回答他们如何使用的问题bypassSecurityTrustScript
,但我不确定提供的问题的答案是如何工作的,因为它似乎在一个内部使用JavaScript模板.
情况:我正在编写适用于任何页面的chrome扩展.
问题问题:我无法将jQuery加载到Facebook中,我想了解发生了什么.
假设:Facebook拥有一些超级先进的技术,以某种方式检测到两者:
数据
我怎么知道jQuery没有加载?
我⌘⌥j在Chrome中调出控制台.当我做 :
> jQuery
>> ReferenceError : jQuery is not defined.
> $('body')
>> Error : Tried to get element "body" but it is not present on the page.
Run Code Online (Sandbox Code Playgroud)
我如何尝试在Facebook中加载jQuery?
方法1(必需但失败):
通过manifest.json文件中的以下代码:
"content_scripts" : [
{
"matches" : ["<all_urls>"],
"js" : [
"javascript/jq/jquery-1.9.1.min.js",
"javascript/jq/non-standard.js"
],
"all_frames": true // (or false, same failure)
}
]
Run Code Online (Sandbox Code Playgroud)
方法2(有效,但不充分):
通过本SO答案(将 …
javascript jquery facebook google-chrome-extension google-chrome-devtools
我正在尝试将jgesture插件用于pinchopen和pinchclose事件。但我收到以下错误:
ReferenceError:找不到变量:jQuery
有没有人知道解决方案?谢谢
我曾经能够(本地)使用以下两个Chrome扩展中的任何一个来轻松地将jQuery注入到尚未拥有jQuery的页面中,并且我没有(客户端)来试验设计更改,开发修改和实时故障排除:
不幸的是,现在因为看起来是防止"XSS"(跨站点脚本)的最新热潮,这些插件不再起作用.这些变化背后可能有一个崇高的目的,我只是想了解改变了什么.我认为这与" 内容安全政策 "有关,我最近才听说过这个政策并且对此知之甚少.
我在2011年首次了解到XSS作为浏览器问题,然而,XSS预防措施从未妨碍我以前进行本地开发.我一直在寻找现代(2017年末)的解决方案,但无济于事.
我不知道从哪里开始.
以下是我尝试的插件(以前大约6个月前工作)不再适用于我:
以下是我遇到的一些提供解决方案的链接,这些链接不再有效:
最后一个也看起来很有希望,但我还没有尝试过:
如何将jQuery(使用Chrome Developer Console)注入不使用jQuery的网页?
在2017年,浏览器/ JavaScript /编程世界发生了一些变化,如果一个人知道这个特定的变化或现象,它很容易解释为什么上面的插件不再起作用?
为什么上面的插件不起作用?今年所有浏览器公司是否普遍推出了一些重大变化?
javascript jquery dependency-injection google-chrome-devtools
大多数时候,在调试应用程序时,我觉得如果可以将任何库包含在浏览器控制台中并尝试该libraty中的某些功能,它将更加容易。
现在,在现代javascript/es6/es6/typescript
世界中,有什么短而快的工具可以立即将脚本导入浏览器,以便可以直接使用
调试时,如果我希望可以观察到,则应该可以执行以下操作
import {Observable} from 'rxjs/Observable'; //typescript way
const Observable= require('rxjs/Observable'); // require way
Run Code Online (Sandbox Code Playgroud)
但是这些都不起作用。
<script>
代码我已经探索了使用动态<script>
标签的旧方法,如下所示,但它难于处理大量的库文件,而且也不美观
var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
// ... give time for script to load, then type (or see below for non wait option)
jQuery.noConflict();
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过运行以下代码在 Chrome 的开发人员控制台中手动提交表单:
$('form').submit();
Run Code Online (Sandbox Code Playgroud)
如何在此代码中指定表单的输入值?我知道输入 ID/名称。
javascript forms jquery google-chrome google-chrome-devtools
我想从谷歌的CDN加载jQuery,并在请求成功时执行jQuery代码,但我似乎无法使其正常工作.这是我的代码:
function loadjQuery(success, error) {
var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
xhr.onload = function() { success(xhr.status, xhr.readyState); }
xhr.onerror = function() { error(); }
xhr.open("GET", "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js", true);
xhr.send();
}
loadjQuery(
function(status, state) {
console.log(status) // 200
console.log(state) // 4
console.log($('body')) // Uncaught ReferenceError: $ is not defined
},
function() { setTimeout(loadjQuery, 10000); }
);
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激
javascript ×9
jquery ×8
include ×2
angular ×1
browser ×1
console ×1
ecmascript-6 ×1
facebook ×1
file ×1
forms ×1
html5 ×1
import ×1
typescript ×1