设置 cookie 时中断 JavaScript 执行
Breaking JavaScript execution when cookie is set
是否可以在设置 cookie 时始终中断 javascript 在浏览器开发人员工具中的执行(无需明确设置 JS 断点)?
document.cookie = '...';
尝试在 If 语句中设置它。
if(document.cookie.indexOf('...') >= 0){
debugger;
}
注意:使用 Firefox 时,您的控制台必须打开。 chrome 情况并非如此。
这应该有效(运行 它在控制台中):
origDescriptor = Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');
Object.defineProperty(document, 'cookie', {
get() {
return origDescriptor.get.call(this);
},
set(value) {
debugger;
return origDescriptor.set.call(this, value);
},
enumerable: true,
configurable: true
});
似乎在 Chrome 中不起作用。在 html → head 块的开头添加此代码段效果很好:
<script type="text/javascript">
function debugAccess(obj, prop, debugGet){
var origValue = obj[prop];
Object.defineProperty(obj, prop, {
get: function () {
if ( debugGet )
debugger;
return origValue;
},
set: function(val) {
debugger;
return origValue = val;
}
});
};
debugAccess(document, 'cookie');
</script>
有关详细信息,请参阅 this Angular University page。
在 Chrome 开发工具中,您可以右键单击应用程序 cookie 中的 cookie,然后 select 'show request with this cookie'
所以这不是拦截,但如果您的目标是识别 cookie 的来源,那么这是一个好方法。
是否可以在设置 cookie 时始终中断 javascript 在浏览器开发人员工具中的执行(无需明确设置 JS 断点)?
document.cookie = '...';
尝试在 If 语句中设置它。
if(document.cookie.indexOf('...') >= 0){
debugger;
}
注意:使用 Firefox 时,您的控制台必须打开。 chrome 情况并非如此。
这应该有效(运行 它在控制台中):
origDescriptor = Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');
Object.defineProperty(document, 'cookie', {
get() {
return origDescriptor.get.call(this);
},
set(value) {
debugger;
return origDescriptor.set.call(this, value);
},
enumerable: true,
configurable: true
});
<script type="text/javascript">
function debugAccess(obj, prop, debugGet){
var origValue = obj[prop];
Object.defineProperty(obj, prop, {
get: function () {
if ( debugGet )
debugger;
return origValue;
},
set: function(val) {
debugger;
return origValue = val;
}
});
};
debugAccess(document, 'cookie');
</script>
有关详细信息,请参阅 this Angular University page。
在 Chrome 开发工具中,您可以右键单击应用程序 cookie 中的 cookie,然后 select 'show request with this cookie'
所以这不是拦截,但如果您的目标是识别 cookie 的来源,那么这是一个好方法。