34

我正在尝试找到一个 shell 命令,该命令将使用特定的 x 和 y 坐标打开 Google Chrome(以便我可以设置窗口打开时的位置。)是否可以使用命令行参数来做到这一点?

我需要修改以下命令以实现此目的:

google-chrome http://www.google.com/

4

5 回答 5

45

当您使用 Google 的 Chrome 时,有一种更短的方法:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 
     --profile-directory="Default"
     --app="data:text/html,<html><body><script>window.moveTo(580,240);window.resizeTo(800,600);window.location='http://www.test.de';</script></body></html>"

临:

  • 自动打开窗口
  • 避免弹出窗口阻止程序
  • 在不同的显示器上打开多个窗口(多显示器设置,需要两个或更多 Chrome 配置文件)

缺点:

  • 似乎只在“应用程序”模式下工作
  • 未在其他浏览器上测试
于 2014-11-16T22:30:17.057 回答
27

http://peter.sh/experiments/chromium-command-line-switches/说 --window-position=x,y 是你要找的。

几年后更新以包含我多年前编写的一个小 shell 脚本(但在回答了这个问题之后),它提供了一个示例,说明如何使用自定义窗口大小/位置启动 chrome,并能够按名称创建“假”用户数据目录.

它可能仍然有效,也可能无效,并且设置了一些危险的选项,但你明白了.. 不要逐字使用这个,一些标志可能已被重命名或被完全删除..(就像 socks 代理命令所做的那样)

#!/bin/bash -x

FAKEUSER="${1:-fake-chrome-user}"
CHROMEROOT=$HOME/.chromeroot/

mkdir -p ${CHROMEROOT}

export PROFILE="${CHROMEROOT}/${FAKEUSER}-chromium-profile"
export DISK_CACHEDIR="${CHROMEROOT}/${FAKEUSER}-chromium-profile-cache"
export DISK_CACHESIZE=4096
export MEDIA_CACHESIZE=4096

PARANOID_OPTIONS="\
        --no-displaying-insecure-content \
        --no-referrers \
        --disable-zero-suggest \
        --disable-sync  \
        --cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007 \
        --enable-sandbox-logging >/dev/null 2>&1
        "


/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
        --remember-cert-error-decisions \
        --ignore-certificate-errors \
        --ignore-urlfetcher-cert-requests \
        --allow-running-insecure-content \
        --window-position=2400,400 \
        --window-size=1500,1000 \
        --no-pings \
        --user-data-dir=${PROFILE} \
        --disk-cache-dir=${DISK_CACHEDIR} \
        --disk-cache-size=${DISK_CACHESIZE} \
        --media-cache-size=${MEDIA_CACHESIZE} \
        2>&1


#--proxy-server="socks4://localhost:30604" \
#--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" \
于 2012-11-18T02:18:15.180 回答
23

以@synthesizerpatel 的答案为基础,--window-position不能单独工作。

您需要使用--user-data-dir--chrome-frame类似以下方式启动它,因为它是自己的新实例:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir=XXXXXXXXXX --window-size=800,600 --window-position=580,240 --app="http://www.google.com/"
or
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --chrome-frame --window-size=800,600 --window-position=580,240 --app="http://www.google.com/"

对我来说不幸的是,将它作为一个新实例意味着它不会从其他实例中继承 session/cookie/etc 信息,因此我必须正常打开它(仅使用--app参数),然后在页面中添加 javascript我打开做:

window.moveTo(580,240);
window.resizeTo(800,600);

我想如果你打开一个别人拥有的网页,你可以打开你自己的网页,上面有上面的js,然后导航到他们的网页。

于 2013-11-05T12:48:37.867 回答
4

我用过这个:

google-chrome "data:text/html;charset=ISO-8859-1,<html>
    <head></head><body><script language=\"javascript\">
        window.open('http://perso.f-hauri.ch/~felix/svg/dustin_w_Clock_autonom.svg',
             'clock','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,'
             +'resizable=1,width=600,height=600,top=100,left=120');</script>"

但是google-chrome阻止弹出窗口,所以这样:

google-chrome "data:text/html;charset=ISO-8859-1,<html><head></head><body>
    <button onclick=\"javascript:window.open(
        'http://perso.f-hauri.ch/~felix/svg/dustin_w_Clock_autonom.svg',
        'clock','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,'
        +'resizable=1,width=600,height=600,top=100,left=120');\"> clock </button>"

给一个很好的方法来做到这一点。

注意:这也适用于 Firefox。

于 2012-11-18T10:24:49.237 回答
1

使用我最新版本的 Chrome - 我只需要以下内容。每次我关闭应用程序时,它都会记住我的窗口大小和位置。

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --chrome-frame --app=https://mightytext.net/web8/?exp=1

这适用于我的版本 48.0.2564.48 beta-m(64 位)和版本 48.0.2564.48 beta-m(64 位)

于 2016-01-07T23:08:35.960 回答