taglife
千年狐狸
千年狐狸
  • UID38488
  • 注册日期2012-03-20
  • 最后登录2013-04-02
  • 发帖数2052
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
阅读:3146回复:8

Abduction: the image is too large ??

楼主#
更多 发布于:2013-03-20 18:00
Abduction:
Sorry, the image is too large, Firefox can not save it.
是多大的圖會出現這句阿?為什麼要有這個限制?能不能把它用掉啊?

好像的確少了複製到剪貼簿和工具列圖示按鈕,
用起來可能不夠方便,有沒有人(Cye3s)會改啊?!      
Firefox 開啟安全模式,停用個人設定、佈景主題及擴充套件(無附加元件)測試:
說明 > 重新啟動但停用附加元件(Firefox 4+)
Firefox Profile: 說明 > 疑難排解資訊 > 開啟資料夾
排版引擎:Firefox(Gecko), Opera(Presto), Google Chrome(WebKit),
Safari(WebKit), Internet Explorer(Trident), Konqueror(KHTML)
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
1楼#
发布于:2013-03-20 18:00
一直用不来,各种错误提示,所以改用手势脚本了
var canvas = content.document.createElement("canvas");
canvas.width = content.document.body.clientWidth;
canvas.height = content.document.body.clientHeight;

var ctx = canvas.getContext("2d");
ctx.drawWindow(content, 0, 0, canvas.width, canvas.height, "rgb(255,255,255)");

saveImageURL(canvas.toDataURL(), content.document.title + ".png",
                           null,null,null,null,document);



经测试可保存页面长度最长32767px的页面,等于或过32768px就会提示组件错误(nsDOMHTMLCanvasElement.toDataURL),不知道怎么解决不过一般来说够用了。
abduction那个记得好像是作者代码里自己写的硬限制,现在已经低于fx本身的限制了

fx复制图片好像有点麻烦,不过可以退一步,你可以复制图片的data url……
var canvas = content.document.createElement("canvas");
canvas.width = content.document.body.clientWidth;
canvas.height = content.document.body.clientHeight;

var ctx = canvas.getContext("2d");
ctx.drawWindow(content, 0, 0, canvas.width, canvas.height, "rgb(255,255,255)");

var imageURI = canvas.toDataURL()
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].getService(Components.interfaces.nsIClipboard);
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);

if(typeof(clip) == "object" && typeof(trans) == "object") {
	trans.addDataFlavor('text/unicode');

	var stingSupporter = Components.classes["@mozilla.org/supports-string;1"]
			.createInstance(Components.interfaces.nsISupportsString);

	stingSupporter.data = imageURI;
	trans.setTransferData("text/unicode", stingSupporter, imageURI.length * 2);
	var clipid = Components.interfaces.nsIClipboard;
	clip.setData(trans, null, clipid.kGlobalClipboard);

	success = true;
}


或者你可以尝试截图后弹出一个div然后手动复制/保存,比如下面的简陋版,左键单击关闭,右键可以复制或保存
var canvas = content.document.createElement("canvas");
canvas.width = content.document.body.clientWidth;
canvas.height = content.document.body.clientHeight;

var ctx = canvas.getContext("2d");
ctx.drawWindow(content, 0, 0, canvas.width, canvas.height, "rgb(255,255,255)");

var imageURI = canvas.toDataURL()

var imageBox = content.document.createElement("img");

imageBox.src = imageURI;

imageBox.style.position = "fixed";
imageBox.style.top = "0";
imageBox.style.boxShadow = "#444 2px 2px 2px 1px";
imageBox.height = "500";
imageBox.width = canvas.width/canvas.height*500;

imageBox.onclick = function(e){
	if(e.button === 0){
		content.document.body.removeChild(imageBox);
	}
}

content.document.body.appendChild(imageBox);
-いたんですか? -ええ、ずっと
Cye3s
千年狐狸
千年狐狸
  • UID155
  • 注册日期2004-11-25
  • 最后登录2024-01-30
  • 发帖数1322
  • 经验95枚
  • 威望0点
  • 贡献值34点
  • 好评度14点
  • 社区居民
  • 忠实会员
2楼#
发布于:2013-03-20 18:00
我很懒...
taglife
千年狐狸
千年狐狸
  • UID38488
  • 注册日期2012-03-20
  • 最后登录2013-04-02
  • 发帖数2052
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
3楼#
发布于:2013-03-20 18:00
Cye3s:有改过的吧-_-
http://g.mozest.com/thread-42892-1-1
回到原帖

我就是用你這個 3.3.0 阿 !但太長的圖片限制能不能用掉  
Firefox 開啟安全模式,停用個人設定、佈景主題及擴充套件(無附加元件)測試:
說明 > 重新啟動但停用附加元件(Firefox 4+)
Firefox Profile: 說明 > 疑難排解資訊 > 開啟資料夾
排版引擎:Firefox(Gecko), Opera(Presto), Google Chrome(WebKit),
Safari(WebKit), Internet Explorer(Trident), Konqueror(KHTML)
Cye3s
千年狐狸
千年狐狸
  • UID155
  • 注册日期2004-11-25
  • 最后登录2024-01-30
  • 发帖数1322
  • 经验95枚
  • 威望0点
  • 贡献值34点
  • 好评度14点
  • 社区居民
  • 忠实会员
4楼#
发布于:2013-03-20 18:00
用掉是啥意思?
我记得是Firefox的限制
我很懒...
taglife
千年狐狸
千年狐狸
  • UID38488
  • 注册日期2012-03-20
  • 最后登录2013-04-02
  • 发帖数2052
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
5楼#
发布于:2013-03-20 18:00
Cye3s:用掉是啥意思?
我记得是Firefox的限制
回到原帖

就是把這條限制移除掉的意思...
限制是多大的圖片?Shift+F2 的 screenshot 也有這條限制嗎?
Firefox 開啟安全模式,停用個人設定、佈景主題及擴充套件(無附加元件)測試:
說明 > 重新啟動但停用附加元件(Firefox 4+)
Firefox Profile: 說明 > 疑難排解資訊 > 開啟資料夾
排版引擎:Firefox(Gecko), Opera(Presto), Google Chrome(WebKit),
Safari(WebKit), Internet Explorer(Trident), Konqueror(KHTML)
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
6楼#
发布于:2013-03-20 18:00

图片:2.png


工具条更烂,不到32768就躺了

你可以试试:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title>Screen shot test</title>
</head>
<body>
	<pre>當前長度:<span id="bodyLengthLabel"></span></pre>
	<input type="number" id="bodyLength"/>
	<button onclick="SetBodyLength()">設置頁面長度(單位:px)</button>
	<script type="text/javascript">
		function ShowBodyLength(){
			var length = document.defaultView.getComputedStyle(document.body, null).getPropertyValue("height");
			document.getElementById("bodyLengthLabel").textContent = length;
		}
		function SetBodyLength(){
			var bodyLength = Number(document.getElementById("bodyLength").value);
			if( (typeof bodyLength === "number") && (bodyLength > 0) && (bodyLength < Infinity) ){
				document.body.style.height = bodyLength + "px";
				ShowBodyLength();
			}
		}
		ShowBodyLength();
	</script>
</body>
</html>



相关bug有,但是不知道是不是一回事
-いたんですか? -ええ、ずっと
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
7楼#
发布于:2013-03-20 18:00
真正相关的Bug是这个:
https://bugzilla.mozilla.org/show_bug.cgi?id=766661

换句话说,太长的页面即使用内部的screenshot命令也截取不下来。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
taglife
千年狐狸
千年狐狸
  • UID38488
  • 注册日期2012-03-20
  • 最后登录2013-04-02
  • 发帖数2052
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
8楼#
发布于:2013-03-20 18:00
對阿!這什麼意思?!      
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLCanvasElement.toDataURL]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: resource://gre/modules/devtools/CmdScreenshot.jsm :: Command_screenshotGrabScreen :: line 129"  data: no]

你那網頁測的每次上限都不同耶?!
跟 browser.cache.disk.smart_size_cached_value 有關嗎?!
Firefox 開啟安全模式,停用個人設定、佈景主題及擴充套件(無附加元件)測試:
說明 > 重新啟動但停用附加元件(Firefox 4+)
Firefox Profile: 說明 > 疑難排解資訊 > 開啟資料夾
排版引擎:Firefox(Gecko), Opera(Presto), Google Chrome(WebKit),
Safari(WebKit), Internet Explorer(Trident), Konqueror(KHTML)
游客

返回顶部