node webkit:在浏览器中打开数千个 url
node webkit: open thousands of urls in browser
我正在使用以下代码片段在默认浏览器中打开 link。
<template>
<div>
<a @click.prevent="fireUpLink">External Link</a>
</div>
</template>
.
<script>
/* global nw */
export default {
methods: {
fireUpLink: function() {
nw.Shell.openExternal("http://example.com/");
}
}
};
</script>
但是假设我有数千个 link,则此解决方案不可扩展。有没有更好的方法?
在Vue SFC中,它期望引用变量在组件中定义或导入,或者是全局的。如果您从全局 window 对象引用它,它应该可以工作。
window.nw.Shell.openExternal('http://example.com');
对于 Vue,如 Max 所示,<a @click.prevent="window.nw.Shell.openExternal('http://example.com')">Link</a>
有效。
您也可以只创建一个组件:
<template>
<a
:href="url"
class="link"
@click.prevent="openExternal"
><slot></slot></a>
</template>
<script>
export default {
name: 'ExternalLink',
props: {
url: {
type: String,
required: true
}
},
methods: {
openExternal: function () {
window.nw.Shell.openExternal(this.url);
}
}
};
</script>
然后像这样引用它:
<external-link url="http://example.com">Link</external-link>
或者,您可以创建一个包含 openExternal
方法的 mixin,并在所有组件中全局安装它,这样您就可以 <a @click.prevent="openExternal('http://example.com')>
如果您使用的不是 Vue,它不使用虚拟 DOM,那么您可以只添加一个 class="external-link"
,然后使用该 class 定位页面上的所有元素] 并处理它们。
$('.external-link').click(function (evt) {
// Prevent the link from loading in NW.js
evt.preventDefault();
// Get the `href` URL for the current link
let url = $(this).attr('href');
// Launch the user's default browser and load the URL for the link they clicked
window.nw.Shell.openExternal(url);
});
我正在使用以下代码片段在默认浏览器中打开 link。
<template>
<div>
<a @click.prevent="fireUpLink">External Link</a>
</div>
</template>
.
<script>
/* global nw */
export default {
methods: {
fireUpLink: function() {
nw.Shell.openExternal("http://example.com/");
}
}
};
</script>
但是假设我有数千个 link,则此解决方案不可扩展。有没有更好的方法?
在Vue SFC中,它期望引用变量在组件中定义或导入,或者是全局的。如果您从全局 window 对象引用它,它应该可以工作。
window.nw.Shell.openExternal('http://example.com');
对于 Vue,如 Max 所示,<a @click.prevent="window.nw.Shell.openExternal('http://example.com')">Link</a>
有效。
您也可以只创建一个组件:
<template>
<a
:href="url"
class="link"
@click.prevent="openExternal"
><slot></slot></a>
</template>
<script>
export default {
name: 'ExternalLink',
props: {
url: {
type: String,
required: true
}
},
methods: {
openExternal: function () {
window.nw.Shell.openExternal(this.url);
}
}
};
</script>
然后像这样引用它:
<external-link url="http://example.com">Link</external-link>
或者,您可以创建一个包含 openExternal
方法的 mixin,并在所有组件中全局安装它,这样您就可以 <a @click.prevent="openExternal('http://example.com')>
如果您使用的不是 Vue,它不使用虚拟 DOM,那么您可以只添加一个 class="external-link"
,然后使用该 class 定位页面上的所有元素] 并处理它们。
$('.external-link').click(function (evt) {
// Prevent the link from loading in NW.js
evt.preventDefault();
// Get the `href` URL for the current link
let url = $(this).attr('href');
// Launch the user's default browser and load the URL for the link they clicked
window.nw.Shell.openExternal(url);
});